首页 > 解决方案 > 分层聚类终止

问题描述

据我了解,凝聚层次聚类首先对彼此最接近的点进行聚类。我试图获得不同的聚类结果,其中只有一定百分比的数据被聚类以进行比较。即40%、50%、60%……

因此,我需要一种方法来终止使用 sklearn 的层次聚类(病房)算法,它已经对指定百分比的数据点进行了聚类。例如,在对 60% 的数据集进行聚类后停止聚类。

请解释这样做的最佳方法是什么?

标签: pythonscikit-learnhierarchical-clustering

解决方案


基于Scikit-learn 文档:

AgglomerativeClustering 对象使用自下而上的方法执行层次聚类:每个观察都在其自己的集群中开始,并且集群依次合并在一起。

因此,您可以通过定义多个集群并适当地设置compute_full_tree参数(如API中定义)来“提前停止”。从使用全树计算运行算法时获得的集群数量,您可以定义集群数量的比率。

剩下的就是找出聚类的数量与已聚类的数据比例之间的关系;但这可能是做您想做的最直接的方法,无需对实际的凝聚聚类算法进行更改。


推荐阅读