实验三报告实验三 Kmeans算法实现.doc

上传人:scccc 文档编号:14402672 上传时间:2022-02-05 格式:DOC 页数:7 大小:67KB
返回 下载 相关 举报
实验三报告实验三 Kmeans算法实现.doc_第1页
第1页 / 共7页
实验三报告实验三 Kmeans算法实现.doc_第2页
第2页 / 共7页
实验三报告实验三 Kmeans算法实现.doc_第3页
第3页 / 共7页
实验三报告实验三 Kmeans算法实现.doc_第4页
第4页 / 共7页
实验三报告实验三 Kmeans算法实现.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验三报告实验三 Kmeans算法实现.doc》由会员分享,可在线阅读,更多相关《实验三报告实验三 Kmeans算法实现.doc(7页珍藏版)》请在三一文库上搜索。

1、北华大学开放实验报告实验名称:实验三 Kmeans算法实现所属课程: 模式识别 班 级: 信息101 学 号: 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个数据对象任意选择

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

4、中(记录其数据样本的编号)step.3-计算现在每个簇的质心,进行更新,判断新质心是否与原质心相等,若相等,则迭代结束,若不相等,回到step2继续迭代。(3)算法流程图开 始读入要分类的数据设置初始聚类中心计算数据到C个聚类中心的距离将数据分入与其距离最小的聚类计算新的聚类中心聚类中心是否收敛?否输出C个分类好的聚类结 束是四、实验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);%

5、第一个随机数在前1/K的范围内nc=x(bn,:);x(2*bn,:);x(3*bn,:);x(4*bn,:);%初始聚类中心cid,nr,centers = kmeans(x,k,nc);%调用kmeans函数for i=1:150, if cid(i)=1, plot(x(i,1),x(i,2),r*) % 显示第一类 hold on else if cid(i)=2, plot(x(i,1),x(i,2),b*) %显示第二类 hold on else if cid(i)=3 plot(x(i,1),x(i,2),g*) %显示第三类 hold on else if cid(i)=4 p

6、lot(x(i,1),x(i,2),k*) %显示第四类 hold on end end end endendstrt=红色*为第一类;蓝色*为第二类;绿色*为第三类;黑色*为第四类 ;text(-4,-3.6,strt); 五、 实验结果六、 结果分析结论(一):初始均值设置的不同会影响迭代的次数以及各次迭代所产生的聚类中心,但它不会影响最后的分类结果。 结论(二):数据的输入顺序不同,同样影响迭代次数,而对聚类结果没有太大的影响。k均值算法的优点:1.如果变量很大,k均值比层次聚类的计算速度更快(如果k很小)。2.与层次聚类相比,k均值可以得到更紧密的簇,尤其是对于球状簇。3.对大数据集,

7、是可伸缩和高效率的。4.算法尝试找出使平方误差函数值最小的k个划分。当结果簇是密集的,而簇与簇之间区别明显的时候,效果较好。K均值算法的缺点:1. 没有指明初始化均值的方法。常用的方法是随机的选取k个样本作为均值。2.产生的结果依赖于均值的初始值,经常发生得到次优划分的情况。解决方法是多次尝试不同的初始值。3.可能发生距离簇中心mi最近的样本集为空的情况,因此, mi将得不到更新。这是一个必须处理的问题,但我们忽略该问题。4.结果依赖于|x- mi|的度量单位。一个常用的解决方法是用标准差规范各个变量,虽然这并非总是可取的。结果还依赖于k值,所以难以比较聚类结果的优劣。5.不适合发现非凸面形状的簇,并对噪声和离群点数据是较敏感的,因为少量的这类数据能够对均值产生极大的影响

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1