【发布时间】:2021-07-26 05:55:48
【问题描述】:
我有以下代码,我用它来分层聚类。我的数据对象是我之前计算的相似距离数组。我认为我正在正确执行集群。我以为我可以只得到集群的叶子,但是当我将它与原始输入进行比较时,我得到了不匹配的结果。
我有两个问题:
为什么我的集群的叶子和我的实际输入数据不匹配?
如何通过链接矩阵或集群节点从集群中提取原始数据?
import numpy as np
import pandas
import scipy.cluster.hierarchy as sch
def list_difference(list1, list2):
return [value for value in list1 if value not in list2]
if __name__ == '__main__':
# example data for this questions purpose.
data = [10, 11, 29, 288, 16]
X = np.array([[i] for i in data])
linkage_matrix = sch.average(X)
rootnode, nodelist = sch.to_tree(linkage_matrix, rd=True)
leaves = sch.leaves_list(linkage_matrix)
print(list_difference(leaves, data))
我想检索每个集群的原始数据点。
【问题讨论】:
-
请修复您的代码
-
我更新了代码。
标签: python scipy hierarchical-clustering