2013-08-07 4 views
0

저는 파이썬에서 Scipy로 clusering하는 것에 대해 다소 혼란 스럽습니다. 여기 내 소스 코드는 다음과 같습니다파이썬에서 Scipy로 클러스터링 하시겠습니까? (계층 적 클러스터링)

import scipy.spatial.distance as dist 
import numpy, scipy 

dataMatrix = numpy.array(matrix) 
distMatrix = dist.pdist(dataMatrix, 'euclidean') 
distSquareMatrix = dist.squareform(distMatrix) 

Y = scipy.cluster.hierarchy.linkage(distSquareMatrix, method='complete') 

나는 'distMatrix'또는 클러스터링을위한 입력으로 squareform 'distSquareMatrix'를 사용해야합니까? 다른 게시물에서 두 가지 방법을 모두 보았 기 때문입니다. 그러나 출력은 다릅니다. 이제는 내가 무엇을 선택해야하는지 잘 모르겠습니다.

답변

4

squareform으로 변환하지 않고 응축 된 형태로 거리 매트릭스를 전달해야합니다. squareform 함수는 거리 매트릭스를 2D 배열로보다 쉽게 ​​조작하려는 경우에 유용합니다. scipy.cluster.hierarchy 함수는 약 2 배의 메모리를 절약하기 위해 압축 형식을 사용합니다.

이 정보가 도움이되기를 바랍니다.

+0

답변 해 주셔서 감사합니다. 즉, 연결 함수에서 'distMatrix'를 사용해야한다는 의미입니다 ... – Joko

관련 문제