덴드로 그램은 어디에서자를까요?


61

계층 적 군집화는 덴드로 그램으로 나타낼 수 있습니다. 덴드로 그램을 특정 수준으로 자르면 일련의 클러스터가 생깁니다. 다른 레벨에서 절단하면 다른 클러스터 세트가 제공됩니다. 덴드로 그램을자를 곳을 어떻게 선택 하시겠습니까? 최적의 포인트로 생각할 수있는 것이 있습니까? 덴드로 그램이 시간이 지남에 따라 변할 때 같은 지점에서 잘라야합니까?


또한이 문제에 대해 궁금해했지만 불행히도 아직 설득력있는 답변을 찾지 못했습니다. 나는 해결책이 없다고 생각합니다. hopack클러스터 수를 추정 할 수있는 R / BioC 패키지 (및 기타 패키지 )가 있지만 질문에 대한 답은 아닙니다.
suncoolsu

pvclust에 대한 패키지 R: 당신이 그룹을 식별 할 수 있도록, dendrogram은 클러스터에 대한 P-값을 부트 스트랩주는 기능을 가지고 is.titech.ac.jp/~shimo/prog/pvclust

답변:


46

클러스터 분석은 본질적으로 탐색 적 접근 방식이므로 명확한 답은 없습니다. 결과적 계층 구조의 해석은 상황에 따라 다르며 종종 이론적으로 볼 때 몇 가지 솔루션이 동일합니다.

관련 질문에 몇 가지 단서가 주어졌습니다 . 실제로 응집 계층 적 군집화를위한 정지 기준은 무엇입니까? 나는 일반적으로 시각적 도표, 예를 들어 실루엣 도표, Dunn 's validity index, Hubert 's gamma, G2 / G3 coefficients 또는 corrected Rand index와 같은 수치 기준을 사용합니다. 기본적으로, 우리는 원래 거리 행렬이 클러스터 공간에서 얼마나 잘 추정되는지 알고 싶기 때문에 cophenetic 상관 관계 의 척도 도 유용합니다. 또한 여러 시작 값과 k- 평균을 사용하고 갭 통계 ( mirror )를 사용하여 SS 내를 최소화하는 군집 수를 결정합니다. Ward 계층 적 클러스터링과의 일치는 클러스터 솔루션의 안정성에 대한 아이디어를 제공합니다.matchClasses()에서 e1071의 그것을위한 패키지).

pvclust , fpc , clv 등 CRAN 작업 뷰 클러스터 에서 유용한 리소스를 찾을 수 있습니다. 시도해도 가치가있다 clValid의 (패키지 설명통계 소프트웨어의 저널 ).

이제 클러스터가 시간이 지남에 따라 바뀌면 조금 까다 롭습니다. 왜 다른 것이 아닌 첫 번째 클러스터 솔루션을 선택해야합니까? 시간이 지남에 따라 진행되는 기본 프로세스의 결과로 일부 개인이 한 클러스터에서 다른 클러스터로 이동할 것으로 예상하십니까?

앞의 질문에서 제안했듯이 최대 절대 또는 상대 겹침이있는 클러스터를 일치시키려는 측정이 있습니다. 봐 개요 - Clusterings 비교 바그너 바그너에서합니다.


12

실제로 답이 없습니다. 1과 N 사이에 있습니다.

그러나 이익 관점에서 생각할 수 있습니다.

예를 들어, 마케팅에서 클러스터링과 매우 유사한 세그먼테이션을 사용합니다.

각 개인에 맞게 조정 된 메시지 (광고 또는 편지)는 가장 높은 응답 속도를 갖습니다. 평균에 맞는 일반 메시지는 가장 낮은 응답 속도를 갖습니다. 세 개의 세그먼트에 맞춰진 세 개의 메시지는 중간에있을 것입니다. 이것이 수익 측면입니다.

각 개인에게 맞는 메시지는 가장 높은 비용을 갖습니다. 평균에 맞춰진 일반적인 메시지는 비용이 가장 낮습니다. 3 개의 세그먼트에 맞춘 3 개의 메시지가 중간에있을 것입니다.

사용자 정의 메시지를 작성하기 위해 작가에게 비용을 지불한다고 가정하면 비용은 1000, 2는 2000 등입니다.

하나의 메시지를 사용하면 수익이 5000이됩니다. 고객을 2 개의 세그먼트로 분류하고 각 세그먼트에 맞춤형 메시지를 작성하면 응답 속도가 높아집니다. 이제 매출이 7500이라고 가정하십시오. 세 개의 세그먼트, 약간 더 높은 응답 속도 및 수익은 9000입니다. 하나의 세그먼트가 더 있고 9500입니다.

이익을 극대화하려면 한계 수입이 분할 될 때까지 한계 분할 비용이 될 때까지 분할하십시오. 이 예에서는 세 개의 세그먼트를 사용하여 수익을 극대화합니다.

Segments  Revenue  Cost  Profit
1         5000     1000  4000
2         7500     2000  5500
3         9000     3000  6000
4         9500     4000  5500

이것은 흥미로운 관점입니다!
AndyF

5

아마도 가장 간단한 방법 중 하나는 x 축이 그룹의 수이고 y 축이 거리 또는 유사성으로 평가 메트릭 인 그래픽 표현 일 것입니다. 이 그림에서 일반적으로 두 개의 차별화 된 영역을 관찰 할 수 있습니다. 선의 '니'에서 x 축 값은 '최적의'클러스터 수입니다.

Hubert의 감마, pseudo-t², pseudo-F 또는 큐빅 클러스터링 기준 (CCC) 등이 작업에 도움이되는 몇 가지 통계도 있습니다.


chl에 동의합니다. 군집 분석은 탐색 적 접근 방식이며 결과에 대한 해석은이 특정한 경우 최적 군집 수에 따라 상황에 따라 다릅니다. 예를 들어, 필자의 작업에서는 여러 특성을 기반으로 개인을 분류하기 위해 군집 분석을 사용하는 것이 일반적이며 때로는 군집 수가 사전 설정되어 있습니다. 이 경우 우리의 목표는 다른 군집에 속한 개인을 가장 잘 구별하는 분류 변수 세트를 찾는 것입니다.
Manuel Ramón


3

계층 적 클러스터링에서 출력 파티션 수는 수평 컷뿐만 아니라 최종 클러스터링을 결정하는 비 수평 컷입니다. 따라서 이것은 거리 측정 기준링크 기준 기준을 제외하고 세 번째 기준으로 볼 수 있습니다 . http://en.wikipedia.org/wiki/Hierarchical_clustering

언급 한 기준은 계층 구조의 파티션 세트에 대한 일종의 최적화 제약 조건 인 세 번째 종류입니다. 이것은이 백서에서 공식적으로 제시되며 세분화의 예가 제공됩니다!

http://www.esiee.fr/~kiranr/ClimbingECCV2012_Preprint.pdf


1

다른 답변에서 알 수 있듯이, 그것은 주관적이며 공부하려는 유형의 입도에 달려 있습니다. 일반적인 접근 방식에서는이 클러스터를 잘라 2 개의 클러스터와 1 개의 특이 치를 제공합니다. 그런 다음 두 클러스터에 중점을 두어 클러스터간에 중요한 것이 있는지 확인했습니다.

# Init
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

# Load data
from sklearn.datasets import load_diabetes

# Clustering
from scipy.cluster.hierarchy import dendrogram, fcluster, leaves_list
from scipy.spatial import distance
from fastcluster import linkage # You can use SciPy one too

%matplotlib inline

# Dataset
A_data = load_diabetes().data
DF_diabetes = pd.DataFrame(A_data, columns = ["attr_%d" % j for j in range(A_data.shape[1])])

# Absolute value of correlation matrix, then subtract from 1 for disimilarity
DF_dism = 1 - np.abs(DF_diabetes.corr())

# Compute average linkage
A_dist = distance.squareform(DF_dism.as_matrix())
Z = linkage(A_dist,method="average")

# Dendrogram
D = dendrogram(Z=Z, labels=DF_dism.index, color_threshold=0.7, leaf_font_size=12, leaf_rotation=45)

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.