k-means聚类算法若干实例matlab代码

k-means聚类算法若干实例matlab代码

ID:35754471

大小:33.00 KB

页数:5页

时间:2019-04-16

k-means聚类算法若干实例matlab代码_第1页
k-means聚类算法若干实例matlab代码_第2页
k-means聚类算法若干实例matlab代码_第3页
k-means聚类算法若干实例matlab代码_第4页
k-means聚类算法若干实例matlab代码_第5页
资源描述:

《k-means聚类算法若干实例matlab代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、要用matlab做聚类,找了几个资源,列在这里。一、方法1: 用matlab自带的函数,IDX=kmeans(X,k)二、参照一段网友写的代码functiony=kMeansCluster(m,k,isRand)%%%%%%%%%%%%%%%%%%kMeansCluster-Simplekmeansclusteringalgorithm%Author:KardiTeknomo,Ph.D.%%Purpose:classifytheobjectsindatamatrixbasedontheattri

2、butes%Criteria:minimizeEuclideandistancebetweencentroidsandobjectpoints%Formoreexplanationofthealgorithm,seehttp://people.revoledu.com/kardi/tutorial/kMean/index.html%Output:matrixdataplusanadditionalcolumnrepresentthegroupofeachobject%%Example:m=[11

3、;21;43;54]orinaniceform%m=[11;%21;%43;%54]%k=2%kMeansCluster(m,k)producesm=[111;%211;%432;%542]%Input:%m-required,matrixdata:objectsinrowsandattributesincolumns%k-optional,numberofgroups(default=1)%isRand-optional,ifusingrandominitializationisRand=1,

4、otherwiseinputanynumber(default)%itwillassignthefirstkdataasinitialcentroids%%LocalVariables%f-rownumberofdatathatbelongtogroupi%c-centroidcoordinatesize(1:k,1:maxCol)%g-currentiterationgroupmatrixsize(1:maxRow)%i-scalariterator%maxCol-scalarnumberof

5、rowsinthedatamatrixm=numberofattributes%maxRow-scalarnumberofcolumnsinthedatamatrixm=numberofobjects%temp-previousiterationgroupmatrixsize(1:maxRow)%z-minimumvalue(notneeded)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ifnargin<3,isRand=0;endifnargin<2,k=1;en

6、d[maxRow,maxCol]=size(m)ifmaxRow<=k,y=[m,1:maxRow]else%initialvalueofcentroidifisRand,p=randperm(size(m,1));%randominitializationfori=1:kc(i,:)=m(p(i),:)endelsefori=1:kc(i,:)=m(i,:)%sequentialinitializationendendtemp=zeros(maxRow,1);%initializeaszero

7、vectorwhile1,d=DistMatrix(m,c);%calculateobjcets-centroiddistances[z,g]=min(d,[],2);%findgroupmatrixgifg==temp,break;%stoptheiterationelsetemp=g;%copygroupmatrixtotemporaryvariableendfori=1:kf=find(g==i);iff%onlycomputecentroidiffisnotemptyc(i,:)=mea

8、n(m(find(g==i),:),1);endendendy=[m,g];endTheMatlabfunctionkMeansClusterabovecallfunctionDistMatrixasshowninthecodebelow.Itworksformulti-dimensionalEuclideandistance.Learnaboutothertypeofdistancehere.functiond=DistMatrix(A,B)%%%%%%%%%%%%%%%%%%%%%%%%%%

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

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

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