[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가 그나마 제일 잘 클러스터링 한 듯 보인다.

한 눈에 비교

클러스터링을 진행한 뒤 각 클러스터들의 특성을 확인하는 사후 분석을 진행한다.
참조
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=¤tPage=1&postListTopCurrentPage=1&from=postView
datastore-of-pren-k.tistory.com/9
joyfuls.tistory.com/64
'Machine Learning > 군집(Clustering)' 카테고리의 다른 글
Clustering - 최적의 군집 수 구하기 : Elbow Method, silhouette, 손실함수 (0) | 2020.09.17 |
---|---|
Clustering - 모델 평가 : Silhouette (0) | 2020.09.17 |
Clustering - DBSCAN (0) | 2020.09.16 |
Clustering - K-means (0) | 2020.09.15 |