Elbow method
이전 연습 문제에서는 클러스터 수를 8로 고정해 MiniBatch K-means를 구현했지만, 실제로 적절한 클러스터 수가 무엇인지 확인하지는 않았어요. 처음 시도하는 사기 탐지 접근에서는, 특히 각 클러스터의 이상치를 사기 예측으로 활용하려면, 클러스터 개수를 제대로 정하는 것이 중요해요. 사용할 클러스터 수를 정하기 위해 Elbow method를 적용해 보고, 이 방법을 기준으로 최적의 클러스터 수가 무엇인지 확인해 봅시다.
X_scaled는 다시 제공되어 있으며, MiniBatchKMeans는 sklearn에서 임포트되어 있어요.
이 연습은 강의의 일부입니다
Python으로 배우는 사기 탐지
연습 안내
- 클러스터 수 범위를 1에서 5로 정의하세요.
- 리스트 컴프리헨션을 사용해 해당 범위의 모든 클러스터 수에 대해 MiniBatch K-means를 실행하세요.
- 각 모델을 스케일된 데이터에 맞추고, 스케일된 데이터에서 점수(score)를 구하세요.
- 클러스터 번호와 해당 점수를 함께 플롯하세요. 실행에 몇 초가 걸릴 수 있어요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Define the range of clusters to try
clustno = range(____, ____)
# Run MiniBatch Kmeans over the number of clusters
kmeans = [____(n_clusters=i, random_state=0) for ____ in ____]
# Obtain the score for each model
score = [kmeans[i].fit(____).score(____) for i in range(len(kmeans))]
# Plot the models and their respective score
plt.plot(____, ____)
plt.xlabel('Number of Clusters')
plt.ylabel('Score')
plt.title('Elbow Curve')
plt.show()