实验三报告实验三kmeans算法实现

实验三报告实验三kmeans算法实现

ID:22281775

大小:110.54 KB

页数:8页

时间:2018-10-28

实验三报告实验三kmeans算法实现_第1页
实验三报告实验三kmeans算法实现_第2页
实验三报告实验三kmeans算法实现_第3页
实验三报告实验三kmeans算法实现_第4页
实验三报告实验三kmeans算法实现_第5页
资源描述:

《实验三报告实验三kmeans算法实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验名称:实验三Kmeans算法实现所属课程:模式识别班级:信息10—1学号:36姓名:张慧实验三、K_means算法实现,、背景知识简介:Kmeans算法是一种经典的聚类算法,在模式识别中得到了广泛的应用,基于Kmeans的变种算法也有很多,模糊Kmeans、分层Kmeans等。Kmeans和应用于混合高斯模型的受限EM算法是一致的。高斯混合模型广泛用于数据挖掘、模式识别、机器学习、统计分析。Kmeans的迭代步骤可以看成E步和M步,E:固定参数类别中心向量重新标记样本,M:固定标记样本调整类别中心向量。K均值只考虑(估计)了均值,而没有估计类别的方差,所以聚类的结构比较适合于特征协方

2、差相等的类别。k-means聚类算法k-means算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。(1)算法思路:首先从n个数据对象任意选择k个对象作为初始聚类中心;而对于所剩下其它对象,则

3、根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数.k个聚类具有以下特点:各聚类木身尽可能的紧凑,而各聚类之间尽可能的分开。该算法的最大优势在于简洁和快速。算法的关键在于初始中心的选择和距离公式。(2)算法步骤:step.1初始化距离K个聚类的质心(随机产生)step.2—计算所有数据样本与每个质心的欧氏距离,将数据样本加入与其欧氏距离最短的那个质心的簇屮(记录其数据样本的编号)step.3—计算现在每个簇

4、的质心,进行更新,判断新质心是否与原质心相等,若相等,则迭代结束,若不相等,回到step2继续迭代。(3)算法流程阁开始读入要分类的数据1设置初始聚类中心汁算数据到C个聚类屮心的距离1将数据分入与其距离最小的聚类结朿四、实验Matlab代码k:4;DATA=xlsread(’zb0708.xls’);x=zeros(150,2);x(1:150,1:2)二DATA(1:150,1:2);%x=rand(150,2)*5;[n,d]=size(x);bn=round(n/k*rand);%第一个随机数在前1/K的范围内nc=[x(bn,:);x(2*bn,:);x(3*bn,:);x(4*

5、bn,:)];%初始聚类中心[cid,nr,centers]=kmeans(x,k,nc);%调用kmeans函数fori=l:150,ifcid(i)=l,plot(x(i,1),x(i,2),’r*’)%显示第一类holdonelseifcid(i)==2,plot(x(i,1),x(i,2),’b*’)%显示第二类holdonelseifcid(i)—3plot(x(i,1),x(i,2),’g*’)%显示第三类holdonclscifcid(i)=4plot(x(i,1),x(i,2),’k*’)%显示第四类holdonendendendendendstrt=[’红色*为第一类;

6、蓝色*为第二类;绿色*为第三类;黑色*为第四类’];text(-4,-3.6,strt);五、实验结果Figure1FileEditViewInsertToolsDesktopWindowHelpDi^S曇叹叹O®函□回¥口32.82.62.42.221-辛X-X-111—士•T-T111料+-1.8-一1.6-一1.4一1.2一一1-iHH:1-—1——A——*♦+++♦——051015202530354045六、结果分析结论(一):初始均值设置的不同会影响迭代的次数以及各次迭代所产生的聚类中心,但它不会影响最后的分类结果。结论(二):数据的输入顺序不同,同样影响迭代次数,而对聚类结果

7、没有太大的影响。k均值算法的优点:1.如果变量很大,k均值比层次聚类的计算速度更快(如果k很小)。2.与层次聚类相比,k均值可以得到更紧密的簇,尤其是对于球状簇。3.对大数据集,是可伸缩和高效率的。4.算法尝试找出使平方误差函数值最小的k个划分。当结果簇是密集的,而簇与簇之间区别明显的吋候,效果较好。K均值算法的缺点:1.没有指明初始化均值的方法。常用的方法是随机的选取k个样本作为均值。2.产生的结果依赖于均值的初始值,经常发生得到

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。