层次聚类终止

Hierarchical clustering termination

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

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

请说明最好的方法是什么?

基于Scikit-learn documentation:

The AgglomerativeClustering object performs a hierarchical clustering using a bottom up approach: each observation starts in its own cluster, and clusters are successively merged together.

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

聚类个数与聚类数据比例之间的关系还有待探索;但这可能是最直接的方法来做你想做的事情,而不需要对实际的凝聚聚类算法进行更改。