求解一个MATLAB解决聚类分析的代码!!!

求解一个MATLAB解决聚类分析的代码!!!,第1张

X=[]%输入你差滑要聚者衡类的数据首庆做

X2=zscore(X)%标准化数据

Y2=pdist(X2)%计算距离

Z2=linkage(Y2)

C2=cophenet(Z2,Y2) T=cluster(Z2,6)

H=dendrogram(Z2)

在聚类分析中,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)<th0

c1=c1+samp(i)n1=n1+1elsec2=c2+samp(i)n2=n2+1endendc1=c1/n1c2=c2/n2

%初始聚类中心t=0cl1=c1cl2=c2

c11=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+1

c11=cl1/n1elsesamp2(n2)=samp(i)

cl2=cl2+samp(i)n2=n2+1

c22=cl2/n2endendif

c11==c1

&&

c22==c2t=1endcl1=c11cl2=c22

c1=c11c2=c22

end

%samp1,samp2为聚类的结果。

初始中心值这里采用均值的办法,也可以根据问题的性质,用经验的方法来确定,或者将样本集随机分成c类,计算每类的均值。

k-均值算法需要事先知道分类的数量,这是其不足之处。

热心网友

聚类分析的概念主要是来自多元统计分析,例如,考虑二维坐标系上有散落的许多点,这时,需要对散点进行合理的分类,就需要聚类方面的知识。模糊聚类分析方法主要针对的是这样的问题:对于样本空间P中的元素含有多个属性,要求对其中的元素进行合理的分类。最终可以以聚类图的形式加以呈现,而聚类图可以以手式和自动生成两种方式进行,这里采用自动生成方式,亦是本文的程序实现过程中拿茄的一个关键环节。

这里所实现的基本的模糊聚类的主要过程是一些成文的方法,在此简述如下:

对于待分类的一个样本集U=,设其中的每个元素有m项指标,则可以用m维向量描述样本,即:ui=(i=1,2,...,n)。则其相应的模糊聚类按下列步骤进行:1)

标准化处理消首察,将数据压缩至芹锋(0-1)区间上,这部分内容相对简单,介绍略。(参[1])2)

建立模糊关系:这里比较重要的环节之一,首先是根据“距离”或其它进行比较的观点及方法建立模糊相似矩阵,主要的“距离”有:Hamming

距离:

d(i,j)=sum(abs(x(i,k)-x(j,k)))

|

k

from

1

to

m

(|

k

from

1

to

m表示求和式中的系数k由1增至m,下同)Euclid

距离:

d(i,j)=sum((x(i,k)-x(j,k))^2)

|

k

from

1

to

m

非距离方法中,最经典的就是一个夹角余弦法:

最终进


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存