Я хочу выполнить иерархическую кластеризацию для набора данных и хотел бы создать собственную дендрограмму. Я застреваю на том, как связать данные дендрограммы с фактическими входными данными.
Из документации, представленной в Scipy, я смог создать dendrogram
. Пример:
%matplotlib inline
from scipy.cluster.hierarchy import dendrogram, linkage
from matplotlib import pyplot as plt
linked = linkage(X, 'single')
plt.figure(figsize=(10, 7))
dendrogram(linked,
orientation='top',
distance_sort='descending',
show_leaf_counts=True)
plt.show()
Но я бы хотел получить доступ к данным, чтобы создать свою собственную дендрограмму. Я нашел функцию to_tree
, которая форматирует дендрограмму в древовидный объект, который может быть пройден для построения структуры дендрограммы. Пример:
from scipy.cluster.hierarchy import to_tree
rootnode, nodelist = to_tree(linked, rd=True)
rootnode.left # provides the left child node
rootnode.right # provides the right child node
Проблема, с которой я сталкиваюсь, заключается в том, как создать связь между моими данными X
и конечными узлами дендрограммы?
Если предполагается, что конечные узлы представляют каждую точку данных из X, то после создания дендрограммы мне нужно иметь возможность связать каждый конечный узел с фактической точкой данных.
Я был бы очень признателен за любую помощь по этому вопросу.
Спасибо