MATLAB K-均值聚类

内容:K-均值聚类是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则,最终使得类内对象之间的距离最大,而类之间的距离最小。

 

K-均值聚类常用函数:

Idx=Kmeans(X,K) %K聚类数,X观测数据矩阵,Idx各点的聚类标号;
[Idx,C]=Kmeans(X,K) % C: K*P的矩阵,存储K个聚类质心位置;
[Idx,C,sumD]=Kmeans(X,K) %sumD: 存储类间所有点与该类质心点距离之和;
[Idx,C,sumD,D]=Kmeans(X,K) %D: 存储每个点与所有质心的距离;


X = [randn(100,2)+ones(100,2);randn(100,2)-ones(100,2);randn(100,2)+[ones(100,1),-ones(100,1)]];%获取随机数据
[Idx,Ctrs,SumD,D] = kmeans(X,3,'Replicates',3,'Options',opts);
%分三类,存储类间所有点与该类质心点距离之和
plot(X(Idx==1,1),X(Idx==1,2),'r.','MarkerSize',14)
hold on
plot(X(Idx==2,1),X(Idx==2,2),'b.','MarkerSize',14)
hold on
plot(X(Idx==3,1),X(Idx==3,2),'g.','MarkerSize',14)
%画出各点
plot(Ctrs(:,1),Ctrs(:,2),'k+','MarkerSize',14,'LineWidth',4)
%绘出聚类中心点,k+表示是圆形
legend('Cluster 1','Cluster 2','Cluster 3','Centroids','Location','NW')

作者:QinL 

 


版权声明:本文为s0302017原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。