k-means & isodata 聚类方法
2013-01-16 23:44
218 查看
k-means 方法和 isodata 方法应该是两种比较基本的聚类方法了。顾名思义, k-means 就是指定有 k 个类,然后通过初始中心迭代得到最后的 k 个中心。这个初始中心可以随便选也可以随机选,也可以只取前 k 个样本作为初始中心。聚类最后的结果与初始聚类中心的关系还是比较密切的,不同的初始中心可能会得到完全不同的结果。解决初始值问题的一种方法是 k-means++ 方法,这里就不再解释了,有兴趣的朋友可以参考本文最后的几个链接。
k-means 的一个缺点就是必须指定聚类的个数,这个有些时候并不太行得通。于是就要求最好这个类别的个数也可以改变,这就形成了 isodata 方法,通过设定一些类别分裂和合并的条件,在聚类的过程中自动增减类别的数目。当然这也带来了一个问题,就是这个条件有时候并不那么好给出。当然 isodata 在很多情况下还是可以得到比较靠谱的结果。
下面的图是这两种聚类方法的对比:
本文为原创,转载文章或图片请注明,本文地址:http://blog.csdn.net/houston11235/article/details/8511379
K-Means
ISODATA
通过上面两张图还是能看出一些区别的,我个人的感受就是初始的聚类中心如果靠近整个数据集的中心的话,结果可能会好一些。还有就是这种聚类受初始中心影响比较大,要想得到稳定的结果最好还是多运行几次,把每次都在一个类别里面的数据归为一个类。
参考链接:
1、K-Means算法
2、K-Means++
3、K-Means Wiki
4、K-Means Matlab code
5、ISODATA Matlab code
6、Another ISODATA's Matlab implementation, can hold N dimensional data
k-means 的一个缺点就是必须指定聚类的个数,这个有些时候并不太行得通。于是就要求最好这个类别的个数也可以改变,这就形成了 isodata 方法,通过设定一些类别分裂和合并的条件,在聚类的过程中自动增减类别的数目。当然这也带来了一个问题,就是这个条件有时候并不那么好给出。当然 isodata 在很多情况下还是可以得到比较靠谱的结果。
下面的图是这两种聚类方法的对比:
本文为原创,转载文章或图片请注明,本文地址:http://blog.csdn.net/houston11235/article/details/8511379
K-Means
ISODATA
通过上面两张图还是能看出一些区别的,我个人的感受就是初始的聚类中心如果靠近整个数据集的中心的话,结果可能会好一些。还有就是这种聚类受初始中心影响比较大,要想得到稳定的结果最好还是多运行几次,把每次都在一个类别里面的数据归为一个类。
参考链接:
1、K-Means算法
2、K-Means++
3、K-Means Wiki
4、K-Means Matlab code
5、ISODATA Matlab code
6、Another ISODATA's Matlab implementation, can hold N dimensional data
相关文章推荐
- k-means & isodata 聚类方法
- 基于K-MEANS聚类的胡萝卜纯色背景去除方法
- 聚类经典方法K-means及其变种
- 划分方法聚类(三) Canopy+K-MEANS 算法解析
- 基于K-MEANS聚类的胡萝卜纯色背景去除方法
- 常用分类&聚类方法
- skfuzzy.cmeans与sklearn.KMeans聚类效果对比以及使用方法
- 机器学习--无监督学习之K-means聚类方法
- K-means文档聚类初值选择方法
- 简单聚类方法K-means方法的实现
- 聚类 K-means & K-medoids 算法
- k-means聚类方法的简单java实现
- 聚类——k-means & MapReduce
- 面试题:请描述K-means的原理,说明选择聚类中心的方法 引发的回顾
- Python机器学习应用 | 聚类——K-means方法及应用
- 基于距离的聚类方法--K-means
- HAWQ + MADlib 玩转数据挖掘之(八)——聚类方法之k-means
- kmeans 文本聚类方法简介
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- [python] 基于k-means和tfidf的文本聚类代码简单实现