군침이 싹 도는 코딩

Hierarchical clustering 본문

Python/Machine Learning

Hierarchical clustering

mugoori 2022. 12. 5. 12:09

계층적 군집 ( Hierarchical clustering ) 은 K-means 와 마찬가지로

unsupervised 에 사용되는 머신러닝 기법이다

따라서 y값이 존재하지않아 따로 검증하지않는다

df 라는 변수에 저장한 데이터 프레임

이 데이터 프레임으로 계층적 군집을 만들어보겠다

 

 

1. X 값을 지정해준다

X = df.loc[:,'Annual Income (k$)':]
X

 

 

 

 

2. 최적의 클러스터 갯수를 찾기

import scipy.cluster.hierarchy as sch

sch.dendrogram( sch.linkage(X,method='ward'))
plt.title('Dendrogram')
plt.xlabel('Customers')
plt.ylabel('Euclidean Distances')
plt.show()

#  세로선이 길어질수록 먼거리를 그루핑한것이다

그루핑의 거리가 멀어질수록 그룹간의 특색이 사라지므로 적절한 지점에서 끊어준다

필자는 검은선으로 그은곳에서 끊어주었다 따라서 클러스터의 갯수는 5개이다

어디서 끊어주는가는 본인의 선택이다

 

 

 

3. 모델링 및 학습을 시키고 값을 데이터 프레임에 넣는다

from sklearn.cluster import AgglomerativeClustering

hc = AgglomerativeClustering(n_clusters=5)
y_pred = hc.fit_predict(X)
df['Group'] = y_pred
df

# 모델링 후 학습한 데이터를 그룹이라는 컬럼으로 추가하였다

'Python > Machine Learning' 카테고리의 다른 글

K-Means clustering  (0) 2022.12.02
Decision Tree / Random Forest  (0) 2022.12.02
Grid Search  (0) 2022.12.02
Support Vector Machine  (0) 2022.12.02
K-NN  (0) 2022.12.02