ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:142.47KB ,
资源ID:15191373      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15191373.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(matlab实现Kmeans聚类算法.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

matlab实现Kmeans聚类算法.docx

1、matlab实现Kmeans聚类算法题目:matlab实现Kmea ns聚类算法姓 名 吴隆煌。学 号背景知识1.简介:Kmeans算法是一种经典的聚类算法,在模式识别屮得到了广泛的 应用,基于K m e an s的变种算法也有很多,模糊Kme a ns分层 Kmeans 等。Kmeans和应用于混合高斯模型的受限E M算法是一致的。高斯混 合模型广泛用于数据挖掘、模式识别、机器学习、统计分析。Kme a ns的迭代步骤可以看成E步和M步,E:固定参数类别屮心向量重 新标记样本,M:固定标记样本调整类别中心向量。K均值只考虑(估 计)了均值,而没有估计类别的方差,所以聚类的结构比较适合于 特征

2、协方差相等的类别。Kme a n s在某种程度也可以看成Me a n s h itf的特殊版本,M eans h ift是一种概率密度梯度估计方法(优点:无需求解出具体的 概率密度,直接求解概率密度梯度。),所以Me a n shift可以用于 寻找数据的多个模态(类别),利用的是梯度上升法。在06年的一 篇CVPR文章上,证明了 Mea n shift方法是牛顿拉夫逊算法的变种。 Kmeans和EM算法相似是指混合密度的形式已知(参数形式已知) 情况下,利用迭代方法,在参数空间屮搜索解。而Kme a ns和Means h i f t相似是指都是一种概率密度梯度估计的方法,不过是Km e a

3、n选用的是特殊的核函数(uniform kernel),而与混合概率密度形 式是否已知无关,是一种梯度求解方式。k-means是一种聚类算法,这种算法是依赖于点的邻域来决定哪些 点应该分在一个组中。当一堆点都靠的比较近,那这堆点应该是分 到同一组。使用k-mean s ,可以找到每一组的屮心点。当然,聚类算法并不局限于2维的点,也可以对高维的空间(3维, 4维,等等)的点进行聚类,任意高维的空间都可以。亠上图中的彩色部分是一些二维空间点。上图屮已经把这些点分组 了,并使用了不同的颜色对各组进行了标记。这就是聚类算法要做 的事情。a这个算法的输入是:1如点的数据(这里并不一定指的是坐 标,其实可

4、以说是向量)2a:K,聚类中心的个数(即要把这一堆数 据分成几组)所以,在处理之前,你先要决定将要把这一堆数据分成几组,即聚 成几类。但并不是在所有情况下,你都事先就能知道需要把数据聚 成几类的。但这也并不意味着使用k-mea n s就不能处理这种情 况,下文中会有讲解。把相应的输入数据,传入k-mean s算法后,当k-mean s算法运行 完后,该算法的输出是:标签(每一个点都有一个标签,因为最 终任何一个点,总会被分到某个类,类的id号就是标签)2如每个 类的中心点。必标签,是表示某个点是被分到哪个类了。例如,在上 图屮,实际上有4屮“标签”,每个“标签”使用不同的颜色来表 示。所有黄色

5、点我们可以用标签0表示,所有橘色点可以用标签1 来表示,等等。在本文中,使用上图的二维坐标(x,y)向量为数据集。假设我们要 将这些点聚成5类,即k =5。我们可以看出,有3个类离的比较远, 有两个类离得比较近,几乎要混合在一起了。当然,数据集不一定是坐标,假如你要对彩色图像进行聚类,那么 你的向量就可以是(b,g,r),如果使用的是hsv颜色空间,那还可 以使用(h, s ,v),当然肯定可以有不同的组合例如(b*b,g*r,r* b ) , (h*b,s*g, v*v)等等。皿在本文中,初始的类的中心点是随机产生的。如上图的红色点所示,是本文随机产生的初始点。注 意观察那两个离得比较近的类

6、,它们几乎要混合在一起,看看算法 是如何将它们分开的。亠类的初始中心点是随机产生的。算法会不 断迭代来矫正这些中心点,并最终得到比较靠近真实屮心点的一组 中心点。当然,最终的结果不一定就是真实的那一组中心点,算法会 尽量向真实的靠近。每个点(除了中心点的其他点)都计算与5个中心点的距离,选出一 个距离最小的(例如该点与第2个中心点的距离是5个距离屮最小 的),那么该点就归属于该类.上图是点的归类结果示意图.亠经过 步骤3后,每一个中心center(i)点都有它的”管辖范围”,由于这 个中心点不一定是这个管辖范围的真正中心点,所以要重新计算中 心点,计算的方法有很多种,最简单的一种是,直接计算该

7、管辖范围 内所有点的均值,做为心的中心点n e w_cen ter (i). a如果重新计 算的中心点n ew_cen t er(i)与原来的中心点cent e r (i)的距离大 于一定的阈值(该阈值可以设定),那么认为算法尚未收敛,使用ne w_c e nter (i)代替ce n ter (i)(如图,中心点从红色点转移到绿 色点),转步骤3;否则,认为算法已经收敛,则n e w_cente r (i) 就是最终的屮心点。A现在,所有的屮心都不再移动,即算法已经收 敛。当然,也许这些中心点还没有达到你要的精度,由于计算这些 中心点的准确性,会受初始屮心点设置的影响。所以,如果初始中 心设

8、置的很糟糕,那么得出来的结果也会不理想。可以从K二1开始,并且k值不断的增加,通常,随着k的增加,类 屮的方差会急剧的下降,当k达到一定大的时候,方差的下降会明 显减慢(至于慢道何种程度,可以设阈值),此时,就选取到了最佳 的k值。a如果初始值没设置好,肯定也不能获得理想的聚类效果。 亠针对这种情况,这里提供两种方法,随机的选取多组中心点,在每 一组中心点上,都把kmeans算法运行一次。最后,在选取类间方差 最小的一组。亠通过设定的选初始值方法(这里提供一种,当然自 己也可以去构想其他的方法)1.在数据集上随机选择一个点,做为第一个中心点;2亠:在数据集 上,选取离第一个中心点最远的一个点做

9、为第二个中心点。弘:在 数据集上,选取离第一个和第二个中心最远的点,做为第三个中心。 4:依此计算后续的屮心点2.数据来源描述本次数据挖掘实验的数据源来自加州大学计算机与信息院,是用于 合成控制图时间序列聚类分析的一组数据。数据集中一共包含60 0组数 据,每一组数据都有60个分量,也就是数据是6 0维的。数据一共可以分 成6个聚类,分别是:101-200 Cy cl i c (循环)20 1 - 3 00 In c r e a s ing tr e nd (增力口趋势)3 0 1 40 0 Deer e a s in g t r end (减少趋势)401- 5 00 Upw a rd s

10、h iff (上升变化)50 1 -600 D o wnw a rd shif t (下降变化)3.数据预处理由于木数据集的数据维数较多,所以本实验采用了结构体来存储60 维的数据,并使用指针来进行对数据的操作,以提高速度。在数据预处理 过程中,首先将数据从da ta文件中读出,后依次存入结构体数组d a t a s et600中。4.k-means聚类算法k-means算法接受参数k ;然后将事先输入的n个数据对 象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象 相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各 聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计

11、算 的。K-me a ns算法是最为经典的基于划分的聚类方法,是十大经典 数据挖掘算法之一。K-me an s算法的基本思想是:以空间中k个 点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐 次更新各聚类中心的值,直至得到最好的聚类结果。(1)算法思路:首先从n个数据对象任意选择k个对象作为初始聚类中心; 而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距 离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类; 然 后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均 值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采 用均方差作为标准测度函数.k个聚类具

12、有以下特点:各聚类本身尽 可能的紧凑,而各聚类之间尽可能的分开。该算法的最大优势在于简洁和快速。算法的关键在于初始中心 的选择和距离公式。(2)算法步骤:step. 1-初始化距离K个聚类的质心(随机产生)step. 2计算所有数据样本与每个质心的欧氏距离,将数 据样木加入与其欧氏距离最短的那个质心的簇中(记录其数据样本 的编号)s t e p. 3 计算现在每个簇的质心,进行更新,判断新质心是否与原质心相等,若相等,则迭代结束,若不相等,回到step 2继续 迭代。M a tlab 代码:function km(k,A)%函数名里不要出现“-”X = randn(100, 2) *100;.

13、randn ( 1 00,2). *2 00;randn( 1 00, 2).*30 0 :.randn ( I 00, 2 ). *4 0 0;randn( 1 0 0,2). *50 0 ; r a ndn(l 0 0,2). *6 0 0; o p t s = s tat s et ( D i spla y ; finalf ;idx, c t rs=km e ans (X, 6 ,.Dis t a nee, ci t y?,Repli cates , 5,,Op t ion s, o p ts);,X(idx= = l, 2), r. J Ma r ke r Si z e! , 1 2

14、 )X (idx=2, 2 ),J b.,J M a rkerS i zez , 1 2),X (i d x =3, 2), f m. , MarkerSize? , 12) (idx= 4,2) J g,Ma r k e r Siz e , 12) h o Id onp 1 o t (X( i dx 二=5, l),X(idx=5, 2), k., Markers i ze, , 12) hold o npl o t (X(idx=6, 1), X(idx=6, 2),c. , Mar k erSi z e, 1 2 )t i tleC bf Kmeans 聚类算法图像)p lot (c t

15、 r s(:, 1) , ctrs(: , 2), k x , Ma rkerSize*, 1 2, L ineWidth, 2) plot (ctrs (: , 1 ), ct r s (:, 2), ko , M a rk e r Size ,12/ L ineWi d th , 2)plot (ct r s(:, 1) , c trs (:, 2),5 kx5, 1 Marker Size, 12, Li neW i dt h *, 2) plot (ctrs (:, 1 ), ct r s (:, 2), kx , MarkerS i ze , 1 2 ,、Lin e Width, 2

16、)plot (c t rs(:, 1 ), ctrs(:, 2) , kx , 1 M a r k e r S i z e , 12, 1 Li n e Width ,2)pl o t (ct r s (:, 1), c t rs (:, 2) , k Mark e rS i ze , 12, L in e Width, 2)plot (ctrs(:, 1) , ctr s (:, 2), kx, Mar k e r Si z e, 1 2 , ! LineWi d th, 2)1 e ge n d (! Cluster 1f , f Cl u s t er 2,J Cluste r 3,J

17、Cl u s t e r 4z , C 1 u s ter 5 f ,.C 1 uster 6 1,1 C e ntroid s, r Lo c a tion 、 NW)15 iterat i on s , total sum o f distanc e s = 18894 7 28 iter ations, total s u m o f dis tan c es = 1787091 2 i t erat ions, total sum of d i s t a nces = 1 8 4 0 551 4 iteration s , t otal s u m of d i stan c es

18、= 18 2 6 42 12 i t er a t i ons, tota 1 sum of distan c es = 1 78357Publi shed wi t h MA T L AB 7. 75.分析方法点估计、区间估计、回归分析、假设检验、聚类分析、判别分析、 因素分析和主成分分析等等。6.获取的模型的描述首先,准备数据,对数据进行预处理,选用合适的数据结构存储数 据元组,然后设定参数,数据的总量N,维度D,聚类类别数量K,然后随 机产生K个D维的数据作为质心,计算每个数据与质心距离,并加入所 属的簇中,经多次迭代后,质心不变后,得到分类后的结果。由于初始化 质心是随机的,所以每次运行聚类分析花费的时间略有不同,本实验采 用结构体来存储数据,聚类的操作多应用指针来实现,在选择所属的簇, 并加入簇中,加入的是数据的索引值,提高了效率,在一步中如果使用指 针指向数据可以进一步提高效率。总体上说算法的运行时间还是比较令 人满意。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2