У меня есть Numpy массив текстового файла по адресу: https://github.com/alvations/anythingyouwant/blob/master/WN_food.matrixКак пересечь дерево из sklearn 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?
Можно ли превратить его в скудную дендрограмму (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_' атрибут 'model'. – jme
Я использовал children_, и он дает мне списки из двух узлов, он не проходит, но возвращает детей, и я понятия не имею, что это такое, и номер узла от детей выходит за пределы моего количества узлов ... – alvas
Полная иерархическая кластеризация Объекты 'n' создают дерево с узлами« 2n - 1 ». Как указано в документации: «Значения, меньшие, чем n_samples, относятся к листьям дерева. Большее значение i указывает узел с дочерними дочерними элементами children_ [i-n_samples]». Это должно быть достаточной информацией для перемещения по дереву. – jme