Scikit-Learn에서는 클러스터링 평가를 위한 여러 가지 지표를 제공하고 있다. 여기서는 실루엣 지수(Silhouette Index), Calinski-Harabasz Index, Davies-Bouldin Index을 다루어 보겠다. 실루엣 지수(Silhouette Index)는 silhouette_score 함수, Calinski-Harabasz Index는 calinski_harabasz_score 함수, Davies-Bouldin Index는 davies_bouldin_score 함수를 이용하여 계산할 수 있다. 이제 각 함수의 사용법을 알아보자.
각 지수에 대한 개념은 아래 포스팅을 참고하기 바란다.
실루엣 지수(Silhouette Index) - https://zephyrus1111.tistory.com/193
Calinski-Harabasz Index - https://zephyrus1111.tistory.com/417#c1
Davies-Bouldin Index - https://zephyrus1111.tistory.com/417#c2
클러스터링 평가 지표
먼저 데이터를 생성하고 K-Means 알고리즘을 이용하여 클러스터링을 수행한다.
import numpy as np
from sklearn.cluster import KMeans
np.random.seed(100)
size = 50
## 데이터 생성
x_11 = np.linspace(0.3,0.8,20)
x_12 = np.linspace(1.4,1.9,15)
x_13 = np.linspace(2.5,3.1,15)
x1 = np.concatenate((x_11,x_12,x_13),axis=None)
error = np.random.normal(1,0.5,size)
x2 = 1.5*x1+2+error
## 클러스터링
X = np.c_[x1, x2]
kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
cluster = kmeans.predict(X)
1) 실루엣 지수(Silhouette Index) : silhouette_score
silhouette_score 함수는 데이터와 클러스터 라벨을 넘겨주면 실루엣 지수를 계산해 준다.
from sklearn.metrics import silhouette_score
print(silhouette_score(X, cluster))
2) Calinski-Harabasz Index : calinski_harabasz_score
calinski_harabasz_score 함수에 데이터와 클러스터 라벨을 넘겨주면 Calinski-Harabasz Index를 계산해 준다.
from sklearn.metrics import calinski_harabasz_score
print(calinski_harabasz_score(X, cluster))
3) Davies-Bouldin Index : davies_bouldin_score
davies_bouldin_score 함수에 데이터와 클러스터 라벨을 넘겨주면 Davies-Bouldin Index를 계산해 준다.
from sklearn.metrics import davies_bouldin_score
print(davies_bouldin_score(X, cluster))
'프로그래밍 > Scikit-Learn' 카테고리의 다른 글
[Scikit-Learn] 21. Gaussian Mixture Model 클러스터링 (feat. GaussianMixture) (0) | 2023.01.22 |
---|---|
[Scikit-Learn] 20. K-Means 클러스터링 (feat. KMeans) (0) | 2023.01.22 |
[Scikit-Learn] 18. K-근접 이웃 분류 및 회귀 (feat. KNeighborsClassifier, KNeighborsRegressor) (0) | 2022.12.05 |
[Scikit-Learn] 17. DBSCAN 클러스터링 해보기 (feat. DBSCAN) (0) | 2022.11.05 |
[Scikit-Learn] 16. decision_path를 이용하여 주어진 데이터가 진행한 노드 정보 확인하기 (0) | 2022.09.18 |
댓글