文章目录
插眼:
- 百面机器学习—1.特征工程
- 百面机器学习—2. 特征工程与模型评估要点总结
- 百面机器学习—3.逻辑回归与决策树要点总结
- 百面机器学习—4.SVM模型基础知识
- 百面机器学习—5.SVM要点总结
- 百面机器学习—6.PCA与LDA要点总结
- 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
- 百面机器学习—8.概率图模型之HMM模型
- 百面机器学习—9.前馈神经网络面试问题总结
- 百面机器学习—10.循环神经网络面试问题总结
- 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
- 百面机器学习—12.优化算法
一、总结K均值算法步骤
二、如何合理选择K值?
- 手肘法
我们可以尝试不同的K值,并将不同K值所对应的损失函数画成折线,横轴为K的取值,纵轴为误差
平方和所定义的损失函数。
由图可见,K值越大,距离和越小;并且,当K=3时,存在一个拐点,就像人的肘部一样;当K∈(1,3)时,曲线急速下降;当K>3时,曲线趋于平稳。手肘法认为拐点就是K的最佳值。 - Gap Statistic 方法
Gap(K)为随机样本的损失与实际样本的损失之差。试想实际样本对应的最佳簇数为K,那么实际样本的损失应该相对较小,随机样本损失与实际样本损失之差也相应地达到最大值,从而Gap(K)取得最大值所对应的K值就是最佳的簇数。
由图可见,当K=3时,Gap(K)取值最大,所以最佳的簇数是K=3。 - 不同的K值将输出不同的结果,我们可以通过考察簇的分离情况与簇的紧凑情况来评估聚类效果。即利用轮廓系数评估指标来选择适当K值。当然这种方式可能存在问题,因为K均值聚类效果易受初始点的影响,而K均值算法中会随机选取数据集的K个点作为初始聚类中心,不能确保不同K对应的初始聚类中心是一样的。
三、K均值算法的优缺点是什么?
优点:
- 对于大数据集,K均值聚类算法相对是可伸缩和高效的,它的计算复杂度是O(NKt)接近于线性,其中N是数据对象的数目,K是聚类的簇数,t是迭代的轮数。
- 尽管算法经常以局部最优结束,但一般情况下达到的局部最优已经