聚类说实话除了K-means,其他的我都不太懂,,,不懂也得写啊!!!
目录:
机器学习常见面试问题汇总
问题汇总(1):逻辑回归
问题汇总(2):支持向量机
问题汇总(3):树模型
问题汇总(4):聚类
问题汇总(5):神经网络
问题汇总(6):EM算法
问题汇总(7):朴素贝叶斯
聚类算法有哪些?
- 基于分层
- 基于划分
- 基于密度
- 基于模型
- 基于网格
K-Means
伪代码:
选取k个初始质心(作为初始cluster);
repeat:
对每个样本点,计算得到距其最近的质心,将其类别标为该质心所对应的cluster;
重新计算k个cluser对应的质心;
until 质心不再发生变化
K-Means的主要优点有:
1)原理比较简单,实现也是很容易,收敛速度快。
2)聚类效果较优。
3)算法的可解释度比较强。
4)主要需要调参的参数仅仅是簇数k。
K-Means的主要缺点有:
1)K值的选取不好把握,以及最开始质心的位置选取与结果关系也很大。
2)对于不是凸的数据集比较难收敛。
3)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳。
4) 采用迭代方法,得到的结果只是局部最优。
5) k-means把任何点都归到了某一个类,对噪音和异常点比较的敏感。
如何确定K值的选取?
-
手肘法(不断增大k,然后关注误差平方和这个指标,选择拐点处作为最优k值)
手肘法 -
轮廓系数法(求轮廓系数,平均轮廓系数越大,聚类效果越好,平均轮廓系数最大的k便是最佳聚类数。)
轮廓系数法
DBSCAN
是相对抗噪音的,并且能处理任意形状和大小的簇。但是如果簇的密度变化很大,就会出现一些问题。
网友评论