关于二分K-means算法实现的问题

关于二分K-means算法实现的问题,第1张

从非零值开始聚簇卖清吧。K-means算法就是随机几个质心当吸铁石,然后丢一堆数据项给各个质心吸,质心就吸走离自己基租最近的数据项。吸了一部分以后,将簇汇总求均值作为簇的新质心,然后接着吸剩余数据项,慢慢就分成一簇簇的了的一搏配兆种分类算法

%随机获取100个点

X =[randn(100,2)+ones(100,2)randn(100,2)+[ones(100,1),-ones(100,1)]]

opts =statset('Display','final')

%调用Kmeans函数

%X N*P的数据矩阵

%Idx N*1的向量,存储的是每个点的聚类标号

%Ctrs K*P的矩阵,存储的是K个聚类质心位置

%SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和

%D N*K的矩阵,存储的是每个点与所有质心的距离

[Idx,Ctrs,SumD,D] =kmeans(X,2,'Replicates',2,'Options',opts)

%画出聚类为1的点。X(Idx==1,1),为第一类的样本的第一数链个坐标;X(Idx==1,2)为第二类的样本的第二个纯毕纳坐标

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)

%绘出聚类中心点,kx表示是圆形

plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)

plot(Ctrs(:,1),Ctrs(:,2),'做没kx','MarkerSize',14,'LineWidth',4)

plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)

legend('Cluster 1','Cluster2','Center 1','Center 2','Location','NW')

Ctrs

SumD

在聚类分析中,K-均值聚类算法(k-means algorithm)是无监督分类中的一种基本方法,其也称为C-均值算法,其基本思想是:通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。假设要把绝渗友样本集分为c个类别,算法如下:(1)适当选择c个类的初始中心;(2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类,(3)利用均值等方法更新该类的中心值;(4)并槐对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。下面介绍作者编写的一个分两类的程序,可以把其作为函数调用。%% function [samp1,samp2]=kmeans(samp)作为调用喊丛函数时去掉注释符samp=[11.1506 6.7222 2.3139 5.9018 11.0827 5.7459 13.2174 13.8243 4.8005 0.9370 12.3576]%样本集[l0 l]=size(samp)%%利用均值把样本分为两类,再将每类的均值作为聚类中心th0=mean(samp)n1=0n2=0c1=0.0c1=double(c1)c2=c1for i=1:lif samp(i)<th0c1=c1+samp(i)n1=n1+1elsec2=c2+samp(i)n2=n2+1endendc1=c1/n1c2=c2/n2%初始聚类中心t=0cl1=c1cl2=c2c11=c1c22=c2%聚类中心while t==0samp1=zeros(1,l)samp2=samp1n1=1n2=1for i=1:lif abs(samp(i)-c11)<abs(samp(i)-c22)samp1(n1)=samp(i)cl1=cl1+samp(i)n1=n1+1c11=cl1/n1elsesamp2(n2)=samp(i)cl2=cl2+samp(i)n2=n2+1c22=cl2/n2endendif c11==c1 &&c22==c2t=1endcl1=c11cl2=c22c1=c11c2=c22end %samp1,samp2为聚类的结果。初始中心值这里采用均值的办法,也可以根据问题的性质,用经验的方法来确定,或者将样本集随机分成c类,计算每类的均值。k-均值算法需要事先知道分类的数量,这是其不足之处。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12458022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存