聚类算法优缺点总结
目录
- K均值算法
- 二分K-均值算法
- Min单链凝聚层次聚类
- Max全链凝聚层次聚类
- 组平均凝聚层次聚类
- Ward方法
- 质心方法
- Lance-Williams公式
- DBSCAN密度聚类
聚类算法分析的角度
数据具有大小很不同的簇
高维数据
具有离群点的数据
具有高度不规则区域的数据
具有球形簇的数据
具有很不相同的密度的数据
具有少量噪声点的数据
非欧几里得数据
欧几里得数据
具有许多属性和混合属性的数据
1.K均值算法
目标函数:最小化每个点到最近质心的距离的平方,即最小化SSE。
优点:
(1)原理比较简单,实现也是很容易,收敛速度快。
(2)局部最优。
(3)算法的可解释度比较强。
(4)主要需要调参的参数仅仅是簇数k。
(5)对处理大数据集,该算法保持可伸缩性和高效性
(6)当簇接近高斯分布时,它的效果较好
缺点:
(1)处理空簇,如果所有点在指派步骤都未分配到某个簇,就会得到空簇
(2)对噪声和异常点比较敏感
(3)K值不好把握
(4)对于不是凸的数据集比较难收敛
(5)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳
(6)采用迭代方法,得到的结果只是局部最优
(7)初始聚类中心的选择
适用的数据类型:
适用于各种数据类型,比较符合随机分布的欧几里得数据,但是不能处理非球形簇,不同尺寸和不同密度的簇
2. 二分K-均值算法
目标函数:从二分试验中选择具有最小总SSE的两个簇
优点:与K均值相同,而且更有效(初始点的选择)
缺点:与K均值相同
适用的数据类型:与K均值相同
3. K-means ++算法
目标函数:通过选择较大的数据点作为质心使总SSE最小
优点:与K均值相同,而且更有效(初试质心的选择)
缺点:与K均值相同
适用的数据类型:与K均值相同
4. Min单链凝聚层次聚类
目标函数:不同两个聚类中离得最近的两个点之间的距离
优点:
(1) 不需要指定K值
(2) 产生高质量的聚类
缺点:
(1) 对于计算量和存储需求而言,此算法是昂贵的
(2) 所有的合并都是最终的,对于噪声,高维数据,可能造成问题
(3) 缺乏全局目标函数
(4) 不能很好的处理不同大小簇的能力
适用的数据类型:单链技术擅长于处理非椭圆形状的簇,但对噪声和离群点很敏感,适用于基本应用需要层次结构,创建一种分类方法,不适用于高维数据,适用于具有少量噪声并且具有欧几里得数据
5. Max全链凝聚层次聚类
目标函数:不同两个聚类中离得最远的两个点之间的距离
优点:与凝聚层次聚类相同
缺点:与凝聚层次聚类相同
适用的数据类型:与凝聚层次聚类相同
6. 组平均凝聚层次聚类
目标函数:不同两个聚类中所有点对距离的平均值
优点:与凝聚层次聚类相同
缺点:与凝聚层次聚类相同
适用的数据类型:与凝聚层次聚类相同
7. Ward方法
目标函数:最小化两个簇合并时导致的平方误差的增量
优点:与凝聚层次聚类相同
缺点:与凝聚层次聚类相同
适用的数据类型:与凝聚层次聚类相同
8. 质心方法
目标函数:计算簇质心之间的距离来计算两个簇之间的邻近度
优点:
(1) 与凝聚层次聚类相同
(2) 倒置的可能性
缺点:与凝聚层次聚类相同
适用的数据类型:与凝聚层次聚类相同
9. DBSCAN密度聚类
目标函数: 给定eps和minpts来聚类
优点:
(1) 相对抗噪声的
(2) 能够处理任意形状和大小的簇,这也是比K均值好的地方
(3) 聚类结果没有偏倚,而K-means聚类算法对初始值要求很高
缺点:
(1) 不能处理密度变化太大以及聚类间距相差很大的簇,不然效果比较差
(2) 不能处理高维数据
(3) 如果样本集较大时,聚类收敛时间较长
(4) 需要进行调参,eps和minpts的参数确定
(5) 算法聚类效果依赖距离公式的选取
适用的数据类型:不能高维,簇密度不能变化太大,聚类间距也不能太大,样本集合适。