白话机器学习算法(四)K-means
2015-02-13 09:51
155 查看
http://blog.csdn.net/wangxin110000/article/details/22094675
K-means算法是一种无监督聚类算法,还是打个比方吧:
1):现在房间里有一群人,各自随机站在房间里,这时候有个上帝,随机挑选了房间里K个人当K个小组的领导;
2):选完领导,每个人开始站队了,找离自己最近的那个领导,表示自己是那一队的;
3):站完队,大家开始不满了,要求重新选领导,选谁?选这一小组的中心位置的人当领导!
4):由于领导换了,大家又要重新站队。
然后重新选领导,重新站队。。。。。。。
5):这样子直到每个小组选的领导跟上次选的领导没啥变化,说明再重选就没意义了。。。。算法收敛;
K-means并不一定能选出一个全局最优解,就像上面说的,作为个体来说,相对于“当前”情况,我没更好的选择,因为大家可能走到一个死胡同里了。。。。。
这种思想就是期望最大化的思想,以当前的聚类中心估计下一次聚类中心,至于最后为啥会收敛,可以参考EM的证明!
期望最大化可以是一个算法也可以是一种思想,这种思想在很多算法中都有应用,只是具体形式不同。
最终K-means的结果取决于初始k个点,以及k的大小,一般来说,我们可以随机选取,多试验几次,选取SSE (SUM SQUARE ERROR)最小的那次作为结果,但是当数据很大的时候,我们不能这么做,因为太耗时间,应该用改进的K-means算法:比如先对数据采样进行一次层次聚类,得到若干个中心,作为初始点;
层次聚类听上去很简单,但是却应用非常广泛,他能保持小聚类块有很好的内聚性,这是很好的特性;
K-means算法是一种无监督聚类算法,还是打个比方吧:
1):现在房间里有一群人,各自随机站在房间里,这时候有个上帝,随机挑选了房间里K个人当K个小组的领导;
2):选完领导,每个人开始站队了,找离自己最近的那个领导,表示自己是那一队的;
3):站完队,大家开始不满了,要求重新选领导,选谁?选这一小组的中心位置的人当领导!
4):由于领导换了,大家又要重新站队。
然后重新选领导,重新站队。。。。。。。
5):这样子直到每个小组选的领导跟上次选的领导没啥变化,说明再重选就没意义了。。。。算法收敛;
K-means并不一定能选出一个全局最优解,就像上面说的,作为个体来说,相对于“当前”情况,我没更好的选择,因为大家可能走到一个死胡同里了。。。。。
这种思想就是期望最大化的思想,以当前的聚类中心估计下一次聚类中心,至于最后为啥会收敛,可以参考EM的证明!
期望最大化可以是一个算法也可以是一种思想,这种思想在很多算法中都有应用,只是具体形式不同。
最终K-means的结果取决于初始k个点,以及k的大小,一般来说,我们可以随机选取,多试验几次,选取SSE (SUM SQUARE ERROR)最小的那次作为结果,但是当数据很大的时候,我们不能这么做,因为太耗时间,应该用改进的K-means算法:比如先对数据采样进行一次层次聚类,得到若干个中心,作为初始点;
层次聚类听上去很简单,但是却应用非常广泛,他能保持小聚类块有很好的内聚性,这是很好的特性;
相关文章推荐
- 白话机器学习算法(四)K-means
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- 白话机器学习算法(十一) GMM
- 白话机器学习算法(十九)CART算法
- 白话机器学习算法(九)朴素贝叶斯
- 数据挖掘/机器学习算法--直接聚类算法(k-means)
- 白话机器学习算法(一)分层聚类
- 白话机器学习算法(十二)聚类,分类的一些总结
- 白话机器学习算法(十六)HMM 隐马尔科夫链
- 白话机器学习算法(十)感知机
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- 【机器学习算法】之K-means聚类
- 数据挖掘/机器学习算法--直接聚类算法(k-means)
- 机器学习算法之聚类算法(K-means&DBSCAN)
- 机器学习算法原理总结系列---算法基础之(11)聚类K均值(Clustering K-means)
- 白话机器学习算法(二)KNN
- 白话机器学习算法(十三)LVQ
- 白话机器学习算法(十二)聚类,分类的一些总结
- 数据挖掘/机器学习算法--直接聚类算法(k-means)
- 机器学习算法之K-means-spark