精选 | K-means++ 聚类算法和它的16种实现方式

2017 年 7 月 8 日 七月在线实验室

在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法。


先来看一个问题


K-Means算法主要解决的问题如下图所示。我们可以看到,在图的左边有一些点,我们用肉眼可以看出来有四个点群,但是我们怎么通过计算机程序找出这几个点群来呢?于是就出现了我们的K-Means算法。


(图片来自网络)


K-Means的演示


如果你以”K Means Demo“为关键字到Google里查你可以查到很多演示。这里推荐一个演示:http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/AppletKM.html(需要墙)

操作是,鼠标左键是初始化点,右键初始化“种子点”,然后勾选“Show History”可以看到一步一步的迭代。这里提供一个不错的---->K Means Tutorial


K-Means++算法


K-Means主要有两个最重大的缺陷——都和初始值有关:


K是事先给定的,这个K值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。


K-Means算法需要用初始随机种子点来搞,这个随机种子点太重要,不同的随机种子点会有得到完全不同的结果。



K-Means++算法步骤



  1. 先从我们的数据库随机挑个随机点当“种子点”。

  2. 对于每个点,我们都计算其和最近的一个“种子点”的距离D(x)并保存在一个数组里,然后把这些距离加起来得到Sum(D(x))。

  3. 然后,再取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是,先取一个能落在Sum(D(x))中的随机值Random,然后用Random -= D(x),直到其<=0,此时的点就是下一个“种子点”。

  4. 重复第(2)和第(3)步直到所有的K个种子点都被选出来。

  5. 进行K-Means算法。


关于这个算法的16种语言实现,可以在这里找到 “implement the K-means++ algorithm”(墙)---->

http://rosettacode.org/wiki/K-means%2B%2B_clustering




机器学习集训营

50人小班即满

最后 6 个名额疯抢中

7.10

>>即将开课<<



猛戳 阅读原文,了解更多集训营细节!

登录查看更多
2

相关内容

专知会员服务
42+阅读 · 2020年7月7日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【ACL2020】利用模拟退火实现无监督复述
专知会员服务
13+阅读 · 2020年5月26日
专知会员服务
139+阅读 · 2020年5月19日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
118+阅读 · 2020年5月6日
人工智能学习笔记,247页pdf
专知会员服务
182+阅读 · 2019年12月14日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
22+阅读 · 2019年11月7日
数据科学家需要了解的5种聚类算法
论智
4+阅读 · 2018年4月7日
免费|机器学习算法Python实现
全球人工智能
5+阅读 · 2018年1月2日
动手写机器学习算法:K-Means聚类算法
七月在线实验室
5+阅读 · 2017年12月6日
一文解读聚类中的两种流行算法
量子位
6+阅读 · 2017年11月20日
机器学习(26)之K-Means实战与调优详解
机器学习算法与Python学习
4+阅读 · 2017年11月19日
BAT题库 | 机器学习面试1000题系列(第191~195题)
七月在线实验室
6+阅读 · 2017年11月15日
机器学习之确定最佳聚类数目的10种方法
炼数成金订阅号
13+阅读 · 2017年10月12日
机器学习(7)之感知机python实现
机器学习算法与Python学习
4+阅读 · 2017年7月23日
基于LDA的主题模型实践(三)
机器学习深度学习实战原创交流
23+阅读 · 2015年10月12日
Arxiv
7+阅读 · 2019年10月6日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
3+阅读 · 2019年3月1日
Arxiv
3+阅读 · 2018年12月18日
Arxiv
4+阅读 · 2018年2月19日
Arxiv
5+阅读 · 2017年4月12日
VIP会员
相关VIP内容
专知会员服务
42+阅读 · 2020年7月7日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【ACL2020】利用模拟退火实现无监督复述
专知会员服务
13+阅读 · 2020年5月26日
专知会员服务
139+阅读 · 2020年5月19日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
118+阅读 · 2020年5月6日
人工智能学习笔记,247页pdf
专知会员服务
182+阅读 · 2019年12月14日
【电子书】Flutter实战305页PDF免费下载
专知会员服务
22+阅读 · 2019年11月7日
相关资讯
数据科学家需要了解的5种聚类算法
论智
4+阅读 · 2018年4月7日
免费|机器学习算法Python实现
全球人工智能
5+阅读 · 2018年1月2日
动手写机器学习算法:K-Means聚类算法
七月在线实验室
5+阅读 · 2017年12月6日
一文解读聚类中的两种流行算法
量子位
6+阅读 · 2017年11月20日
机器学习(26)之K-Means实战与调优详解
机器学习算法与Python学习
4+阅读 · 2017年11月19日
BAT题库 | 机器学习面试1000题系列(第191~195题)
七月在线实验室
6+阅读 · 2017年11月15日
机器学习之确定最佳聚类数目的10种方法
炼数成金订阅号
13+阅读 · 2017年10月12日
机器学习(7)之感知机python实现
机器学习算法与Python学习
4+阅读 · 2017年7月23日
基于LDA的主题模型实践(三)
机器学习深度学习实战原创交流
23+阅读 · 2015年10月12日
相关论文
Top
微信扫码咨询专知VIP会员