나는에서 NumPy와 텍스트 파일 배열이 있습니다 https://github.com/alvations/anythingyouwant/blob/master/WN_food.matrixsklearn에서 나무를 가로 지르는 방법 AgglomerativeClustering?
그것은 용어와 서로 사이의 거리 행렬의를, 용어의 내 목록과 같은 수 있습니다 :
http://pastebin.com/2xGt7Xjh 내가 계층 클러스터를 생성하기 위해 다음과 코드를 사용 :
import numpy as np
from sklearn.cluster import AgglomerativeClustering
matrix = np.loadtxt('WN_food.matrix')
n_clusters = 518
model = AgglomerativeClustering(n_clusters=n_clusters,
linkage="average", affinity="cosine")
model.fit(matrix)
은 각 용어에 대한 클러스터를 얻으려면, 내가 할 수 있었다 :
for term, clusterid in enumerate(model.labels_):
print term, clusterid
그러나 AgglomerativeClustering이 출력하는 트리를 어떻게 트래버스합니까?
scipy dendrogram (http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.cluster.hierarchy.dendrogram.html)으로 변환 할 수 있습니까? 그리고 그 후에 어떻게 멍크 라인을 횡단합니까?
에서 [문서] (http://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html)의'children_' 속성을보고 제안 '모델'. – jme
나는 children_을 사용하고 두 개의 노드 목록을 제공하고 있지만 이동하지 않고 리턴하는 하위 노드가 아니며 그 노드의 노드 번호가 노드 수를 초과한다는 것을 전혀 알지 못합니다 ... – alvas
전체 계층 적 'n' 객체는'2n - 1' 노드를 가진 트리를 생성합니다. 문서에서 "n_samples보다 작은 값은 트리의 잎을 의미하며, 큰 값 i는 자식 child_ [i - n_samples]가있는 노드를 나타냅니다. 그것은 나무를 가로 지르는 데 충분한 정보 여야합니다. – jme