模式识别大作业.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

模式识别大作业

题目:对数据进行聚类分析

专业:控制理论与控制工程

姓名:齐璐

学号:1306012

一.根本要求

用FAMALE.TXT、MALE.TXT和/或test2.txt的数据作为本次实验使用的样本集,利用C均值聚类法和层次聚类法对样本集进行聚类分析,对结果进行分析,从而加深对所学内容的理解和感性认识。

二.具体做法

1.把FAMALE.TXT和MALE.TXT两个文件合并成一个,同时采用身高和体重数据作为特征,设类别数为2,利用C均值聚类方法对数据进行聚类,并将聚类结果表示在二维平面上。尝试不同初始值对此数据集是否会造成不同的结果。

2.对1中的数据利用层次聚类方法进行聚类,分析聚类结果,体会分级聚类方法。

三.实验原理

C均值聚类方法:

〔1〕C均值算法思想

基于使聚类性能指标最小化,所用的聚类准那么函数是聚类集中每一个样本点到该类中心的距离平方之和,并使其最小化。

〔2〕C均值算法步骤:

1.任选C个初始聚类中心。一般以开头C个样本作为初始中心。

2.将模式样本集的每一样本按最小距离原那么分配给C个聚类中心,即在第m次迭代时,假设。那么,,表示第m次迭代时,以第j个聚类中心为代表的聚类域。

3.由步骤2计算新的聚类中心,即:

式中Ni为第i个聚类域中的样本个数。其均值向量作为新的聚类中心,因为这样可以使误差平方和准那么函数:

到达最小值。

4.假设,算法收敛,计算完毕。否那么返回到步骤2,进行下一次迭代。

〔3〕算法流程图

开始

开始

读入要分类的数据

设置初始聚类中心

计算数据到C个聚类中心的距离

将数据分入与其距离最小的聚类

计算新的聚类中心

聚类中心是否收敛?

输出C个分类好的聚类

结束

四.程序源代码〔程序来源于公开文档〕

1.主程序

clearall

clc

[FHFW]=textread(D:\kjunzhi\FEMALE.TXT,%f%f);

[MHMW]=textread(D:\kjunzhi\MALE.TXT,%f%f);

Data(1:50,1)=FH;Data(51:100,1)=MH;

Data(1:50,2)=FW;Data(51:100,2)=MW;

C=input(c=);

[U,P,Dist,Cluster_Res,Obj_Fcn,iter]=fuzzycm(Data,C);

plot(Data(:,1),Data(:,2),o);

holdon;

maxU=max(U);

index1=find(U(1,:)==maxU);

index2=find(U(2,:)==maxU);

line(Data(index1,1),Data(index1,2),marker,*,color,g);

line(Data(index2,1),Data(index2,2),marker,*,color,r);

plot([P([12],1)],[P([12],2)],*,color,k)

holdoff;

2.子程序

unction[U,P,Dist,Cluster_Res,Obj_Fcn,iter]=fuzzycm(Data,C,plotflag,M,epsm)

ifnargin5

epsm=1.0e-6;

end

ifnargin4

M=2;

end

ifnargin3

plotflag=0;

end

[N,S]=size(Data);m=2/(M-1);iter=0;

Dist(C,N)=0;U(C,N)=0;P(C,S)=0;

%???¨2?????????¤????¨?

U0=rand(C,N);

U0=U0./(ones(C,1)*sum(U0));

%FCM|ì?|ì¨1?¨2???¤?§

whiletrue

%|ì¨1?¨2???????

iter=iter+1;

%?????¨°?¨1?????¨¤????P

Um=U0.^M;

P=Um*Data./(ones(S,1)*sum(Um));

%?¨1?????¤????¨?U

fori=1:C

forj=1:N

Dist(i,j)=fuzzydist(P(i,:),Data(j,:));

end

end

U=1./(Dist.^m.*(ones(C,1)*sum(Dist.^(-m))));

%???à¨o?????|ì:?¨¤??????§???¤??¨?????

ifnargout4|plotflag

Obj_Fcn

文档评论(0)

展翅高飞2020 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档