본문 바로가기

Machine Learning/군집(Clustering)

Clustering - Hierarchical Clustering

반응형
[Hierarchical Clustering]

계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체 내지 그룹과 통합하여
군집화를 수행하는 알고리즘

K-means 군집화와 달리 군집 수를 사전에 정하지 않아도 됨
(덴드로그램, Dendrogram 이용)

거리(Distance) 또는 유사도(Similarity)를 기반으로 클러스터를 형성

 

 

Agglomerative Method

응집형 계층적 클러스터링

각 데이터 지점에서 시작해 유사한 지점들을 함께 결합해 클러스터를 형성
(Bottom-up)

 

 

 

연결기준 (유클리디안 거리)


1. Single Linkage - 두 클러스터 내의 가장 가까운 점 사이의 거리


먼 거리에 있는 이상한 데이터의 영향을 최소화할 수 있다.





2. Complete Linkage - 두 클러스터 내의 가장 먼 점 사이의 거리


클러스터간 거리가 멀고 클러스터의 밀집도가 높을 경우 좋은 결과를 낸다.





3. Average Linkage - 두 클러스터 내의 모든 점 사이의 평균 거리


무난한 방법이나
데이터에 노이즈가 많고 중심점이 명확하지 않으면 잘 동작하지 않을 수 있다.



연결 기준에 따라 군집이 달라지므로 데이터 특성, 분포에 따라 적절히 변경하며 확인해야 한다.

 

 

K-means와 달리 군집 수를 미리 정하지 않아도 된다고 했는데,

그렇다면 무엇을 보고 군집 수를 정해야할까?

 

위 궁금증을 해결하기 위해 덴드로그램부터 그려보자

 

 

 

 

 

 

덴드로그램 그리기

 

 

 

linkage 함수를 불러온 뒤 data를 넘기면 Hierarchical clustering을 수행한다.

 

 

연결 방법을 달리해서 3가지 결과를 만들어 둔다.

 

 

 

연결 방법 별로 확연히 덴드로그램이 다르게 그려지는 것을 볼 수 있다.

 

 

wine 데이터는 특성간 연결이 잘 되어 있기에 클러스터 간 노이즈에 민감하게 분포되어 있다.

 

그래서 Single 방법으로는 적절한 군집화가 되지 않아 보인다.

 

 

Complete는 클러스터간 노이즈와 이상치에 제일 덜 민감하므로 군집화가 잘 되었다.

 

 

Average는 나머지 두 방법에 비해 덜 치우쳐지며 군집화가 잘 된 것으로 보인다.

 

 

 

 

 

위의 덴드로그램을 통해 내린 결론은 아래와 같다.

 

1. wine 데이터의 특성상 Single linkage는 피해야한다.

2. 군집의 개수는 3-4개로 만들면 잘 나뉘어질 것 같다.

 

 

 

 

 

데이터 전처리 및 PCA

 

 

Standard scaling을 진행하고 시각화를 할 수 있게 2차원으로 축소해준다.

 

n_clusters(군집 개수)는 3으로 통일한다.

 

 

 

 

 

AgglomerativeClustering - Single Linkage

 

 

PC1과 PC2를 기준으로 하는 산점도가 대체로 연결되어 있는 것처럼 보이며

 

각 클러스터 간 모호한 노이즈가 많기 때문에

 

Single Linkage는 특별한 군집을 만들어내지 못했다.

 

 

그러나 반대로 생각해보면, 이러한 분포를 오히려 군집화 하지 않고

하나로 묶는 것이 적절한 방향일 수도 있다.

 

 

 

 

 

 

AgglomerativeClustering - Complete Linkage

 

 

Single Linkage보단 잘 구분하여 클러스터링 되었다.

 

 

 

 

 

 

AgglomerativeClustering - Average Linkage

 

 

Average Linkage가 그나마 제일 잘 클러스터링 한 듯 보인다.

 

 

 

 

참고 : average linkage의 군집을 5개로 했을 때의 결과

 

 

 

 

 

 

한 눈에 비교

 

 

클러스터링을 진행한 뒤 각 클러스터들의 특성을 확인하는 사후 분석을 진행한다.

 

 

참조

https://bcho.tistory.com/1204?category=555440

ratsgo.github.io/machine%20learning/2017/04/18/HC/

blog.naver.com/PostView.nhn?blogId=samsjang&logNo=221019280298&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView

datastore-of-pren-k.tistory.com/9

joyfuls.tistory.com/64

반응형