各种聚类算法优缺点:
总结下:
Kmeans
优点:
- 简单快速
- 可处理大数据集,高效可伸缩,复杂度O(nkt),经常以局部最优结束
- 尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,而簇与簇之间区别明显时,它的聚类效果很好
缺点:
对 K 值敏感
- 对离群点和噪声点敏感
- 初始聚类中心的选择
- 只能聚凸的数据集, 即聚类的形状一般只能是球状的,不能推广到任意的形状
DBSCAN
优点
- 自适应的聚类,不需要提前设定K值大小
- 对噪声不敏感。
- 能发现任意形状的簇。
- 聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响
缺点
- 对两个参数的设置敏感,即圈的半径 eps 、阈值 MinPts
- 数据密度不均匀时,很难使用该算法
- 数据样本集越大,收敛时间越长。此时可以使用 KD 树优化
凝聚式层次聚类
优点
- 距离和规则的相似度容易定义,限制少
- 需要预先制定聚类数
- 可以发现类的层次关系
- 计算复杂度太高;
- 奇异值也能产生很大影响;
- 算法很可能聚类成链状
谱聚类
- 当聚类的类别个数较小的时候,谱聚类的效果会很好,但是当聚类的类别个数较大的时候,则不建议使用谱聚类;
- 谱聚类算法使用了降维的技术,所以更加适用于高维数据的聚类;
- 谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法(比如K-Means)很难做到
- 谱聚类算法建立在谱图理论基础上,与传统的聚类算法相比,它具有能在任意形状的样本空间上聚类且收敛于全局最优解
- 谱聚类对相似度图的改变和聚类参数的选择非常的敏感;
- 谱聚类适用于均衡分类问题,即各簇之间点的个数相差不大,对于簇之间点个数相差悬殊的聚类问题,谱聚类则不适用;
参考链接:
文本聚类相关链接, 后续整理:
https://www.csdn.net/gather_23/MtTaggysMzU2Mi1ibG9n.html
https://blog.csdn.net/lovoslbdy/article/details/104927365
https://blog.csdn.net/xiaoquantouer/article/details/53521581
https://blog.csdn.net/weixin_47143210/article/details/106219013
常见的六大聚类算法 包含均值漂移、高斯、 图团体检测等聚类方法
各种聚类算法(原理+代码+对比分析)最全总结 包含 DBSCAN KMeans AHC 算法代码
----------------------
附上一篇层次聚类的介绍文章 http://blog.sciencenet.cn/blog-1271266-858703.html