聚类算法选择速查表

其中涉及到算法复杂度的计算时, nn表示样本数量, mm表示特征维度, kk表示设定的簇的数量, tt表示迭代次数.

模型名称

数据类型

算法效率

聚类形状

适用于高维

适用于大数据

噪声敏感

能否识别异常点

能否自动得到类别数

应用场景

Python API

Partition based

K-Means

数值型

高效,O(kmnt)O(kmnt)

球形

敏感

大数据量, 球形, 噪声小, 没有异常点

K-Medoids

数值型

低效,O(k(nk)2)O(k(n-k)^2)

球形

不敏感

小数据集, 特别适合有噪声和极端值的情况

PAM

数值型

低效

球形

不敏感

K-Medoids算法的变种

CLARA

数值型

球形

不敏感

K-Medoids算法的变种

AP

数值型

低效,O(n2logn)O(n^2\log{n})

球形

不敏感

小数据集, 球形数据

Hierarchy based

agglomerative

数值型

低效

任意形状

小数据集, 精准聚类; 不同的linkage方法使算法的表现有根本性的变化

BIRCH

数值型

高效,O(n)O(n)

球形

大数据量, 低位; 有多种应用情景, 查阅Birch文档

CURE

数值型

高效,O(s2logs)O(s^2\log{s})

任意形状

大数据量, 任意形状

最后更新于

这有帮助吗?