kmeans中的k的含义_K-means聚类算法中K值如何选择?

笔者整理的一些解答如下:

1. 数据的先验知识,或者数据进行简单分析能得到

2. 基于变化的算法:即定义一个函数,随着K的改变,认为在正确的K时会产生极值。如Gap

Statistic Jump Statistic 。可以这么理解,给定一个合理的类簇指标,比如平均半径或直径,只要我们假设的类簇的数目等于或者高于真实的类簇的数目时,该指标上升会很缓慢,而一旦试图得到少于真实数目的类簇时,该指标会急剧上升

3. 基于结构的算法:即比较类内距离、类间距离以确定K。这个也是最常用的办法,如使用平均轮廓系数,越趋近1聚类效果越好;如计算类内距离/类间距离,值越小越好;等。其中轮廓系数(silhouette coefficient)。结合了凝聚度和分离度。计算公式如下

其中

向量到所有它属于的簇中其它点的距离的平均,

向量到所有非本身所在簇中其它点的距离的平均距离

4. 基于一致性矩阵的算法:即认为在正确的K时,不同次聚类的结果会更加相似,以此确定K

5. 基于层次聚类:即基于合并或分裂的思想,在一定情况下停止从而获得K

6. 基于采样的算法:即对样本采样,分别做聚类;根据这些结果的相似性确定K。如,将样本分为训练与测试样本;对训练样本训练分类器,用于预测测试样本类别,并与聚类的类别比较

7. 使用Canopy Method算法进行初始划分

8. 使用BIC算法进行初始划分

欢迎关注我的公众号,第一时间追踪相关面试题和总结:百面机器学习。

回复干货获取相关资料和面试题总结(定期更新)。

笔者只是一些问题的搬运工,具体需要对问题进行深入的小伙伴还望自己阅读相关文献,这里只是提出一些问题,以便于面试时问到,如果内容有一些错误,还望批评指正!

你可能感兴趣的:(kmeans中的k的含义)