我想对数据集执行分层聚类,并希望构建自定义树状图。我陷入了如何将树状图数据与实际输入数据相关联的问题。
根据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中的每个数据点,那么一旦创建了树状图,我就需要能够将每个叶子节点与实际数据点相关联。
在此问题上的任何帮助,我将非常感谢。
谢谢