人生的意义就是思考其意义分享 http://blog.sciencenet.cn/u/qianlivan 天体物理工作者,家乡云南昆明。

博文

Matlab处理分子云数据的可能性(五)k-means聚类

已有 4299 次阅读 2013-6-11 09:35 |个人分类:知识|系统分类:科研笔记|关键词:学者| MATLAB, 聚类

      分类是时常遇到的问题,有时候分布上会有几个峰,这个时候分类就比较明确。但是更多的时候并不存在这样明显的特征,或者几个峰有重叠,要进行明确的区分就有借助某种规则,由计算机实现了。
      一个最简单的方法就是k-means。基本想法就是先随机选定几个中心点(分成n组就选n个中心点),然后计算这些中心点到某点的距离,将此点归入距离最近的中心点所代表的组,完成所有点的计算后,在计算每组点的新的中心点(就是各组点的平均位置)。然后重复这个过程直到收敛。这个方法是非常明确的,实践当中几乎不会碰到不收敛的情况。但是这个方法也不保证能找到全局最优解。
      在matlab中有直接可用的函数,用
[cidx,cmeans] = kmeans(data,2,'display','iter');
就可以把data数组分为2组,最终结果cidx存储了每个点对应的组号,cmeans存储了每个组最终的中心点。data数组可以是n*m数组,其中n是点的数量,m是空间的维数,即每个点有m个坐标值。

参考文献
http://cs229.stanford.edu/notes/cs229-notes7a.pdf



https://m.sciencenet.cn/blog-117333-698458.html

上一篇:Matlab处理分子云数据的可能性(四)柱状图
下一篇:Matlab处理分子云数据的可能性(六)谱线拟合

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-17 10:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部