白话机器学习算法(四)K-means
2014-03-25 20:39
190 查看
K-means算法是一种无监督聚类算法,还是打个比方吧:
1):现在房间里有一群人,各自随机站在房间里,这时候有个上帝,随机挑选了房间里K个人当K个小组的领导;
2):选完领导,每个人开始站队了,找离自己最近的那个领导,表示自己是那一队的;
3):站完队,大家开始不满了,要求重新选领导,选谁?选这一小组的中心位置的人当领导!
4):由于领导换了,大家又要重新站队。
然后重新选领导,重新站队。。。。。。。
5):这样子直到每个小组选的领导跟上次选的领导没啥变化,说明再重选就没意义了。。。。算法收敛;
K-means并不一定能选出一个全局最优解,就像上面说的,作为个体来说,相对于“当前”情况,我没更好的选择,因为大家可能走到一个死胡同里了。。。。。
这种思想就是期望最大化的思想,以当前的聚类中心估计下一次聚类中心,至于最后为啥会收敛,可以参考EM的证明!
期望最大化可以是一个算法也可以是一种思想,这种思想在很多算法中都有应用,只是具体形式不同。
最终K-means的结果取决于初始k个点,以及k的大小,一般来说,我们可以随机选取,多试验几次,选取SSE (SUM SQUARE ERROR)最小的那次作为结果,但是当数据很大的时候,我们不能这么做,因为太耗时间,应该用改进的K-means算法:比如先对数据采样进行一次层次聚类,得到若干个中心,作为初始点;
层次聚类听上去很简单,但是却应用非常广泛,他能保持小聚类块有很好的内聚性,这是很好的特性;
1):现在房间里有一群人,各自随机站在房间里,这时候有个上帝,随机挑选了房间里K个人当K个小组的领导;
2):选完领导,每个人开始站队了,找离自己最近的那个领导,表示自己是那一队的;
3):站完队,大家开始不满了,要求重新选领导,选谁?选这一小组的中心位置的人当领导!
4):由于领导换了,大家又要重新站队。
然后重新选领导,重新站队。。。。。。。
5):这样子直到每个小组选的领导跟上次选的领导没啥变化,说明再重选就没意义了。。。。算法收敛;
K-means并不一定能选出一个全局最优解,就像上面说的,作为个体来说,相对于“当前”情况,我没更好的选择,因为大家可能走到一个死胡同里了。。。。。
这种思想就是期望最大化的思想,以当前的聚类中心估计下一次聚类中心,至于最后为啥会收敛,可以参考EM的证明!
期望最大化可以是一个算法也可以是一种思想,这种思想在很多算法中都有应用,只是具体形式不同。
最终K-means的结果取决于初始k个点,以及k的大小,一般来说,我们可以随机选取,多试验几次,选取SSE (SUM SQUARE ERROR)最小的那次作为结果,但是当数据很大的时候,我们不能这么做,因为太耗时间,应该用改进的K-means算法:比如先对数据采样进行一次层次聚类,得到若干个中心,作为初始点;
层次聚类听上去很简单,但是却应用非常广泛,他能保持小聚类块有很好的内聚性,这是很好的特性;
相关文章推荐
- 白话机器学习算法(四)K-means
- 机器学习算法之K-means-spark
- 白话机器学习算法(十四)数据降维
- 机器学习算法与Python实践之 k均值聚类(k-means)
- 数据挖掘/机器学习算法--直接聚类算法(k-means)
- 机器学习算法之K-means-spark
- 白话机器学习算法(五)自组织映射SOM
- 白话机器学习算法(十一) EM(附三个硬币模型代码)
- 数算实习课机器学习算法总结(Naive Bayes, K-means)
- 数据挖掘/机器学习算法--直接聚类算法(k-means)
- 机器学习算法之K-means-spark
- 机器学习算法小整理之K-means
- 白话机器学习算法(六) PCA
- 白话机器学习算法(十七)熵,条件熵
- 白话机器学习算法(十五)文档与图片的特征提取(学习笔记)
- 数据挖掘/机器学习算法--直接聚类算法(k-means)
- 机器学习算法之K-means-spark
- 白话机器学习算法(七)LDA
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- 白话机器学习算法(十六)HMM 隐马尔科夫链