k中心点聚类算法伪代码_K-means聚类算法中K值如何选择?

c019cab750494a064533fa569bd50716.png

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

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算法进行初始划分

欢迎关注我的公众号,第一时间追踪相关面试题和总结:百面机器学习。回复干货获取相关资料和面试题总结(定期更新)。

56ece918a2e888d92496faaa48cf1b4d.png
k-means的k值该如何确定?
KMeans算法的K值以及初始类簇中心点的选取 - CSDN博客
机器学习-KMeans聚类 K值以及初始类簇中心点的选取

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值