다음과 같은 데이터 셋이 있을 때 비슷한 데이터끼리 묶으려고 한다.
Hierarchical Clustering (계층적 군집) 을 이용할 것이다.
그렇다면 이 때 데이터를 몇 개의 클러스터로 묶어야 할까?
이 때 사용하는 것이 Dendrogram이다.
import scipy.cluster.hierarchy as sch
sch.dendrogram(sch.linkage(X, method = 'ward'))
plt.title('Dendrogram')
plt.xlabel('Customers')
plt.ylabel('Eculidean Distances')
plt.show()
다음과 같은 문장으로 Dendrogram 을 만들어보자.
차트를 보다시피 가까이 있는 (비슷한) 데이터끼리 묶고 묶고 묶이는 최종에는 하나의 구조로 묶이는
계층적 구조로 이루어져있으며
줄기가 커지면 커질수록 유사성은 떨어지고 멀리 떨어진 데이터라는 해석을 할 수 있다.
그러므로 우리는 너무 멀어지지 않고 적당히 줄기를 잘라 클러스터의 개수를 파악하면 된다.
나는 5개의 클러스터를 만들도록 하겠다.
from sklearn.cluster import AgglomerativeClustering # 병합적 군집
hc = AgglomerativeClustering(n_clusters= 5)
y_pred = hc.fit_predict(X)
df['Group'] = y_pred
위와 같이 AgglomerativeClustering함수를 불러와 위에서 파악한대로 n_cluster 파라미터에는 5를 입력한다.
0부터 4까지 5개의 그룹이 만들어진 것을 확인할 수 있다.
'머신러닝 > 머신러닝 라이브러리' 카테고리의 다른 글
문자열 데이터를 처리하기 위해, 구두점 제거와 Stopwords 사용하는 코드 : string 라이브러리, STOPWORDS 라이브러리로 불용어 처리하기 (0) | 2022.05.10 |
---|---|
WORD CLOUD 라이브러리에 대해 (0) | 2022.05.09 |
머신러닝의 종류 (4) - K-Means : WCSS와 Elbow Method 설명 (0) | 2022.05.09 |
머신러닝의 종류 (3) - K-NN ( K- Nearest neighbor ) (0) | 2022.05.06 |
머신러닝의 종류 (2) - Logistic Regression / 분류 문제의 인공지능 성능평가 방법 - 컨퓨전 매트릭스 (Confusion matrix) (0) | 2022.05.06 |
댓글