模式识别--K均值聚类简单实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验三K均值算法一、实验目的:1.对动态聚类算法有一个初步的理解,能够根据自己的设计对K均值算法有一个深刻地认识;2.理解聚类准则。二、实验条件:1.PC微机一台和MATLAB软件。三、实验原理:给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。实验步骤:已知样本集合jxxxxX},,...,,{321是d维特征向量,j=1,2,…,n;已知类别数K和初始聚类中心的距离iC;相似性测度可以采用欧氏距离;聚类准则采用误差平方和准则,其准则函数为KiCxiiiCCxJ12,||||是第i类的聚类中心。步骤如下:1)初始化:给定类别数K,初始化聚类中心1,,...,2,1),(lkilCi2)第l次迭代的修正:逐个将样本},....,,{21nxxxX按照最小距离原则分配给K个聚类中心的某一个。若piKpilCxlCxijpj,,...,1,||,)(||||)(||,则xlCxp),(是聚类中心为)(lCp的样本集。3)计算新的聚类中心:)(,..2,1,1)1(lCxiiiKixNlC其中iN为第一个聚类所包含的样本个数。用均值向量作为新的聚类中心,可使准则函数KiCxJiCxi,...,2,1,||||2最小。4)若,,...,2,1),()1(KilClCii令,1ll转(2);将样本逐个重新分类,重复迭代计算。若,,...,2,1),()1(KilClCii算法收敛,计算完毕。四、实验内容:1)用MATLAB得出30个随机二维向量2)通过K均值算法kmeans对30个随机二维向量进行分类五、实验程序及结果:clc;clear;x1=1.2*randn(10,1)+3y1=1.1*randn(10,1)+3a=[x1,y1];x2=1.2*randn(10,1)+6y2=1.1*randn(10,1)+6b=[x2,y2];x3=1.2*randn(10,1)+9y3=1.1*randn(10,1)+9c=[x3,y3]figure(1);plot(x1,y1,'k.',x2,y2,'k.',x3,y3,'k.');%用黑点画出30个随机点;X=[a;b;c][idx,c]=kmeans(X,3)%kmeans进行分类figure(2);plot(X(idx==1,1),X(idx==1,2),'r.')%用红点画出第一类holdonplot(X(idx==2,1),X(idx==2,2),'b.')%用蓝点画出第二类holdonplot(X(idx==3,1),X(idx==3,2),'g.')%用绿点画出第三类效果图:六、实验总结:通过本次实验我进一步熟悉了K均值算法的相关知识。此外还在一定程度上锻炼了我的编程能力及对matlab的使用。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功