机器学习里如何确定K-Means算法的K值?

【问题】

Kmeans算法中,K值所决定的是在该聚类算法中,所要分配聚类的簇的多少。Kmeans算法对初始值是比较敏感的,对于同样的k值,选取的点不同,会影响算法的聚类效果和迭代的次数。

 

【解决方案】

最常用最简单的方法可视化数据,然后观察出聚类聚成几类比较合适。

绘制出k-average with cluster distance to centroid的图表,观察随着k值的增加,曲线的下降情况,当曲线不再“急剧”下降时,就是合适的k值。

计算不同k值下kmeans算法的BIC和AIC值,BIC或AIC值越小,选择该k值。

使用 Canopy算法先进行粗略的聚类,产生的簇的个数,作为kmeans算法的k值。

使用x-means方法结合BIC准则去判定簇的个数,也就是k值。

使用Gap Statistic公式来确定k值。

使用轮廓系数(silhouette coefficient)来确定,选择使系数较大所对应的k值。

使用交叉验证来确定使目标函数(距中心的距离的平方差)变小的k值。

利用Affinity propagation的方法估计最优的聚类数目,进一步进行kmeans的算法。

利用层次聚类,可视化后认为地观察认定可聚为几类,确定k值。

.....

参考文献

xmeans简介

How can we choose a "good" K for K-means clustering?

How do I determine k when using k-means clustering?

Gap Statistic 间隔统计量

Silhouette (clustering)

轮廓系数(Silhouette Coefficient )

究竟应该聚多少类?聚类分析



作者:城市中迷途小书童
链接:https://www.jianshu.com/p/f88d1125e6eb
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值