从Sklearn层次聚类模型构建层次树

时间:2018-10-29 17:11:24

标签: python scikit-learn scipy dendrogram

我想对数据集执行分层聚类,并希望构建自定义树状图。我陷入了如何将树状图数据与实际输入数据相关联的问题。

根据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中的每个数据点,那么一旦创建了树状图,我就需要能够将每个叶子节点与实际数据点相关联。

在此问题上的任何帮助,我将非常感谢。

谢谢

0 个答案:

没有答案