개발/머신러닝

파이썬. 머신러닝 - Hierarchical_clusterning

웅'jk 2022. 12. 5. 12:17

모든 데이터들의 길이를 구하고 가장 짧은 길이를 가진 데이터끼리를 묶는 과정을

계속 반복하여 한덩어리가 될때 멈추는 기법이다.

 

처음에는 모든 길이를 다구한다.

가장 짧은 길이의 데이터를 한덩어리로 묶고 다시 과정을 반복한다.

이러한 과정을 거쳐 한덩어리가 되었을 때 멈추고 

이 과정을 Dendrogram 으로 나타내어 눈으로 확인하여 군집을 몇개로 나눌지 확인한다.

import scipy.cluster.hierarchy as sch

# X = 데이터프레임에서 분할에 이용할 데이터
sch.dendrogram(sch.linkage(X,method = 'ward'))
plt.title('Dendrogram')
plt.xlabel('Customers')
plt.ylabel('Euclidean Distances')
plt.show()

X 축은 모든 데이터를 나타내고, y축은 데이터들간의 길이를 의미한다.

이렇게 파악한 그래프로 군집을 설정하여 예측을 한다.

 

from sklearn.cluster import AgglomerativeClustering

#인공지능만들기
hc = AgglomerativeClustering(n_clusters=5)

#예측
y_pred = hc.fit_predict(X)

#컬럼에 그룹으로 추가
df['Group'] = y_pred