< 예제 실습 >
기술 지원 데이터는 종종 고객 경험 개선 기회에 대한 풍부한 정보 소스가 될 수 있습니다.
제품에 대한 고객의 문제가 적을수록 좋습니다. 고객이 최소한의 노력으로 기술적 과제를 신속하게 극복 할 수 있다면 더욱 좋습니다.
기술 지원 데이터를 분석하고 문제 유형, 문제 해결 시간 및 가장 적합한 지원 채널에 대한 기본적인 분석을 수행하겠습니다.
문제) technical_support_data.csv 파일을 통해, 비슷한 유형의 문제들을 도출하시오.
import pandas as pd
# 데이터 불러오기
df = pd.read_csv('../data/technical_support_data.csv')
# 비어있는 데이터 확인
df.isna().sum()
PROBLEM_TYPE 0
no_of_cases 0
Avg_pending_calls 0
Avg_resol_time 0
recurrence_freq 0
Replace_percent 0
In_warranty_percent 0
Post_warranty_percent 0
dtype: int64
# 클러스터링이므로 X 데이터만 생성
X = df.loc[ : , 'no_of_cases' : 'Post_warranty_percent' ]
# 인공지능 생성
from sklearn.cluster import KMeans
# 알맞은 그룹수를 확인하기 위해서 반복문을 활용하여 엘보우 메소드 확인하기
# wcss 라고 하는 빈 list를 만들어 1부터 10까지 범위를 정하여 차트로 출력해보자.
wcss = []
for i in range(1, 10+1) :
kmeans = KMeans(n_clusters=i, random_state= 5)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
wcss
[666888.109626087,
235660.1862872549,
144549.20695833335,
100307.14277619046,
69776.86952976191,
58308.31121666667,
41967.414533333336,
30673.244183333332,
19872.730766666667,
16387.074516666667]
import matplotlib.pyplot as plt
plt.plot(wcss)
plt.show()
# 대략 4-5 사이가 적합해 보이므로 범위는 5로 설정
kmeans = KMeans(n_clusters= 5, random_state= 5)
# 예측하여 변수로 메모리에 업로드
y_pred = kmeans.fit_predict(X)
y_pred
array([4, 3, 3, 3, 1, 1, 1, 4, 0, 1, 1, 0, 4, 1, 2, 2, 0, 4, 1, 0, 3, 3,
3])
# 그룹으로 나누어진 데이터를 직접 불러와 확인해 보기 위해 기존 데이터에 새로운 컬럼으로 삽입
df['Problem'] = y_pred
df.loc[df['Problem'] == 0 , ]
df.loc[df['Problem'] == 1 , ]
ㄴ 원하는 그룹들만 불러와서 눈으로 직접 비교 확인해 볼수 있다.