我可以使用层次聚类获取聚类特征吗 - numpy

0 投票
1 回答
1222 浏览
提问于 2025-04-17 15:50

我正在对一个 m*n 的数组进行层次聚类。

  1. 输入数组:500 * 1000(1000 个特征,500 个观测值)
  2. 使用自己定义的 pdist 函数计算距离矩阵
  3. 将这个距离矩阵输入到链接函数中: clusters = sch.linkage(distanceMatrix,'single')
  4. 形成扁平聚类: fc = sch.fcluster(clusters,cutoff,'distance')

这样我得到了大约 80 个聚类(使用的截止值是 6.0)。现在,有没有办法让我也能得到每个聚类对应的 1000 个特征呢?(就像我们在 K-means 聚类中得到质心的特征一样)。

1 个回答

3

在层次聚类中(或者说除了k均值和高斯混合模型之外的其他方法,因为它们只适用于“球形”的聚类——实际上是凸形的聚类),聚类的中心点不一定是合理的

这是因为它们可以处理非球形的聚类。这其实是一个优点……

https://en.wikipedia.org/wiki/Cluster_analysis#Connectivity_based_clustering_.28hierarchical_clustering.29

看看右边那张标题为“链接聚类示例”的图片。在这个“香蕉”示例中,聚类有什么用呢?聚类的中心点可能根本不在这个聚类里!

需要注意的是,如果你需要中心点,你仍然可以自己计算。因为聚类算法并不需要中心点,所以它显然不会自动为你计算出来。

撰写回答