我可以使用层次聚类获取聚类特征吗 - numpy
我正在对一个 m*n 的数组进行层次聚类。
- 输入数组:500 * 1000(1000 个特征,500 个观测值)
- 使用自己定义的 pdist 函数计算距离矩阵
- 将这个距离矩阵输入到链接函数中: clusters = sch.linkage(distanceMatrix,'single')
- 形成扁平聚类: fc = sch.fcluster(clusters,cutoff,'distance')
这样我得到了大约 80 个聚类(使用的截止值是 6.0)。现在,有没有办法让我也能得到每个聚类对应的 1000 个特征呢?(就像我们在 K-means 聚类中得到质心的特征一样)。
1 个回答
3
在层次聚类中(或者说除了k均值和高斯混合模型之外的其他方法,因为它们只适用于“球形”的聚类——实际上是凸形的聚类),聚类的中心点不一定是合理的。
这是因为它们可以处理非球形的聚类。这其实是一个优点……
看看右边那张标题为“链接聚类示例”的图片。在这个“香蕉”示例中,聚类有什么用呢?聚类的中心点可能根本不在这个聚类里!
需要注意的是,如果你需要中心点,你仍然可以自己计算。因为聚类算法并不需要中心点,所以它显然不会自动为你计算出来。