matlab实现Kmeans聚类算法.doc
《matlab实现Kmeans聚类算法.doc》由会员分享,可在线阅读,更多相关《matlab实现Kmeans聚类算法.doc(12页珍藏版)》请在咨信网上搜索。
1、matlab实现Kmeans聚类算法 作者: 日期:12 个人收集整理 勿做商业用途 题目:matlab实现Kmeans聚类算法 姓 名 吴隆煌 学 号 41158007 背景知识1. 简介:Kmeans算法是一种经典的聚类算法,在模式识别中得到了广泛的应用,基于Kmeans的变种算法也有很多,模糊Kmeans、分层Kmeans等。Kmeans和应用于混合高斯模型的受限EM算法是一致的。高斯混合模型广泛用于数据挖掘、模式识别、机器学习、统计分析。Kmeans的迭代步骤可以看成E步和M步,E:固定参数类别中心向量重新标记样本,M:固定标记样本调整类别中心向量.K均值只考虑(估计)了均值,而没有估
2、计类别的方差,所以聚类的结构比较适合于特征协方差相等的类别.Kmeans在某种程度也可以看成Meanshitf的特殊版本,Meanshift是一种概率密度梯度估计方法(优点:无需求解出具体的概率密度,直接求解概率密度梯度.),所以Meanshift可以用于寻找数据的多个模态(类别),利用的是梯度上升法。在06年的一篇CVPR文章上,证明了Meanshift方法是牛顿拉夫逊算法的变种.Kmeans和EM算法相似是指混合密度的形式已知(参数形式已知)情况下,利用迭代方法,在参数空间中搜索解。而Kmeans和Meanshift相似是指都是一种概率密度梯度估计的方法,不过是Kmean选用的是特殊的核函
3、数(uniform kernel),而与混合概率密度形式是否已知无关,是一种梯度求解方式。kmeans是一种聚类算法,这种算法是依赖于点的邻域来决定哪些点应该分在一个组中。当一堆点都靠的比较近,那这堆点应该是分到同一组。使用k-means,可以找到每一组的中心点.当然,聚类算法并不局限于2维的点,也可以对高维的空间(3维,4维,等等)的点进行聚类,任意高维的空间都可以.上图中的彩色部分是一些二维空间点。上图中已经把这些点分组了,并使用了不同的颜色对各组进行了标记。这就是聚类算法要做的事情。这个算法的输入是:1:点的数据(这里并不一定指的是坐标,其实可以说是向量)2:K,聚类中心的个数(即要把这
4、一堆数据分成几组)所以,在处理之前,你先要决定将要把这一堆数据分成几组,即聚成几类.但并不是在所有情况下,你都事先就能知道需要把数据聚成几类的。但这也并不意味着使用k-means就不能处理这种情况,下文中会有讲解。把相应的输入数据,传入kmeans算法后,当kmeans算法运行完后,该算法的输出是:1:标签(每一个点都有一个标签,因为最终任何一个点,总会被分到某个类,类的id号就是标签)2:每个类的中心点。标签,是表示某个点是被分到哪个类了.例如,在上图中,实际上有4中“标签”,每个“标签”使用不同的颜色来表示。所有黄色点我们可以用标签0表示,所有橘色点可以用标签1来表示,等等。在本文中,使用
5、上图的二维坐标(x,y)向量为数据集.假设我们要将这些点聚成5类,即k=5.我们可以看出,有3个类离的比较远,有两个类离得比较近,几乎要混合在一起了。当然,数据集不一定是坐标,假如你要对彩色图像进行聚类,那么你的向量就可以是(b,g,r),如果使用的是hsv颜色空间,那还可以使用(h,s,v),当然肯定可以有不同的组合例如(bb,g*r,r*b) ,(h*b,s*g,v*v)等等.在本文中,初始的类的中心点是随机产生的。如上图的红色点所示,是本文随机产生的初始点。注意观察那两个离得比较近的类,它们几乎要混合在一起,看看算法是如何将它们分开的.类的初始中心点是随机产生的。算法会不断迭代来矫正这些
6、中心点,并最终得到比较靠近真实中心点的一组中心点。当然,最终的结果不一定就是真实的那一组中心点,算法会尽量向真实的靠近。每个点(除了中心点的其他点)都计算与5个中心点的距离,选出一个距离最小的(例如该点与第2个中心点的距离是5个距离中最小的),那么该点就归属于该类.上图是点的归类结果示意图.经过步骤3后,每一个中心center(i)点都有它的”管辖范围”,由于这个中心点不一定是这个管辖范围的真正中心点,所以要重新计算中心点,计算的方法有很多种,最简单的一种是,直接计算该管辖范围内所有点的均值,做为心的中心点new_center(i).如果重新计算的中心点new_center(i)与原来的中心点
7、center(i)的距离大于一定的阈值(该阈值可以设定),那么认为算法尚未收敛,使用new_center(i)代替center(i)(如图,中心点从红色点转移到绿色点),转步骤3;否则,认为算法已经收敛,则new_center(i)就是最终的中心点。现在,所有的中心都不再移动,即算法已经收敛。当然,也许这些中心点还没有达到你要的精度,由于计算这些中心点的准确性,会受初始中心点设置的影响.所以,如果初始中心设置的很糟糕,那么得出来的结果也会不理想。可以从K=1开始,并且k值不断的增加,通常,随着k的增加,类中的方差会急剧的下降,当k达到一定大的时候,方差的下降会明显减慢(至于慢道何种程度,可以设
8、阈值),此时,就选取到了最佳的k值。如果初始值没设置好,肯定也不能获得理想的聚类效果。针对这种情况,这里提供两种方法:随机的选取多组中心点,在每一组中心点上,都把kmeans算法运行一次。最后,在选取类间方差最小的一组.通过设定的选初始值方法(这里提供一种,当然自己也可以去构想其他的方法)本文为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络1。在数据集上随机选择一个点,做为第一个中心点;2:在数据集上,选取离第一个中心点最远的一个点做为第二个中心点。3:在数据集上,选取离第一个和第二个中心最远的点,做为第三个中心.4:依此计算后续的中心点2. 数据来源描述本次数据挖掘实验的数据源来
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实现 Kmeans 算法
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。