2015-01-10 2 views
2

클러스터링 알고리즘으로 scipy.cluster.hierarchy.linkage를 사용하고 다양한 임계 값에 대해 병합 된 클러스터를 얻으려면 결과 연결 행렬을 scipy.cluster.hierarchy.fcluster으로 전달합니다.scikit-learn 실루엣 점수를 사용하여 scipy의 fcluster의 실루엣 점수를 계산하는 방법은 무엇입니까?

결과의 실루엣 점수를 계산하고이를 비교하여 최상의 임계 값을 선택하고 자체적으로 구현하지 않고 scikit-learn의 sklearn.metrics.silhouette_score을 사용하고 싶습니다. 클러스터링 결과를 sklearn.metrics.silhouette_score의 입력으로 재 배열하는 방법은 무엇입니까?

답변

3

당신은 꼭 할 필요는 없습니다.

fcluster의 결과를 실루엣 _ 스코어에 직접 입력 할 수 있습니다.

distmatrix1 = scipy.spatial.distance.squareform(distmatrix + distmatrix.T) 
ddgm = scipy.cluster.hierarchy.linkage(distmatrix1, method="average") 
nodes = scipy.cluster.hierarchy.fcluster(ddgm, 4, criterion="maxclust") 
metrics.silhouette_score(distmatrix + distmatrix.T , nodes, metric='euclidean') 
관련 문제