模式识别作业.docx

上传人:b****8 文档编号:30135769 上传时间:2023-08-05 格式:DOCX 页数:24 大小:148.33KB
下载 相关 举报
模式识别作业.docx_第1页
第1页 / 共24页
模式识别作业.docx_第2页
第2页 / 共24页
模式识别作业.docx_第3页
第3页 / 共24页
模式识别作业.docx_第4页
第4页 / 共24页
模式识别作业.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

模式识别作业.docx

《模式识别作业.docx》由会员分享,可在线阅读,更多相关《模式识别作业.docx(24页珍藏版)》请在冰豆网上搜索。

模式识别作业.docx

模式识别作业

模式识别作业

 

模糊C-均值聚类分析的应用

 

学院、系电子信息工程学院自动化系

专业名称模式识别与智能系统

年级2009级

学生姓名郭佳

学号30956028

 

目录

1.前言1

2.模糊C均值算法2

2.1FCM算法准则2

2.2模糊C均值算法步骤3

2.2.1简介3

2.2.2FCM算法具体步骤4

3.模糊C均值聚类算法的Matlab实现5

3.1实验数据5

3.2模糊C均值聚类程序分析7

3.3Matlab实现及结果分析7

3.3.1前29组数据的聚类分析7

3.3.249组数据的聚类分析15

总结20

参考文献21

 

模糊C-均值聚类分析的应用

1.前言

聚类就是按照一定的要求和规律对事物进行区分和分类的过程,在这一过程中没有任何关于类分的先验知识,仅靠事物间的相似性作为类属划分的准则,因此属于无监督分类的范畴。

聚类分析则是指用数学的方法研究和处理给定对象的分类。

“人以群分,物以类聚”,聚类是一个古老的问题,它伴随着人类社会的产生和发展而不断深化,人类要认识世界就必须区别不同的事物并认识事物间的相似性。

传统的聚类分析是一种硬划分,它把每个待辨识的对象严格地划分到某个类中,同一事物属于且仅属于所划定类别中的某一类,具有非此即彼的性质。

例如在描述人的很多特征之一——性别的时候,很容易就可以对人进行分类,因为性别只有男性和女性之分,因此这种分类的类别界限是分明的、清晰的、不含糊的,属于普通集合理论的范畴。

而实际上大多数对象并没有严格的属性,它们在形态和类属方面存在着中介性,适合进行软划分,用普通集合的理论往往不能完全解决具有模糊性的分类问题。

例如:

将人按身高分为:

高个子、中等个子、矮个子;图1-1所示经典硬聚类无法解决的聚类问题示意图,I部分代表高个子,II部分代表矮个子,但是他们的交集部分,用传统的硬聚类分析方法就无法解决。

图1-1经典硬聚类无法解决的聚类问题示意图

在此基础上,Zadeh提出的模糊集理论为这种软划分提供了有力的分析工具,人们开始用模糊的方法来处理聚类问题,并称之为模糊聚类分析。

应该指出,基于模糊集理论的模糊逻辑本身并不是模糊的,而是用来对“模糊”进行处理以达到消除模糊的逻辑。

事实上,模糊逻辑是一种精确地解决不精确、不完全信息的方法,其最大的特点就是用它可以比较自然的处理人类的概念。

具体地说,模糊逻辑是通过模糊集合来工作的,模糊集合与传统集合的本质区别在于:

(1)传统集合对集合中的元素关系进行严格区分,一个元素要么属于此集合,要么不属于此集合,并且不存在介于二者之间的情况;

(2)模糊集合则具有灵活的隶属关系,允许元素在一个集合中部分隶属。

元素在模糊集合中的隶属度可以是从0到1之间的任何值,而不像在传统集合中要么是0要么是1,这样模糊集合可以从“不隶属”到“隶属”逐级的过渡。

正是由于模糊聚类具有样本属于各个类别的不确定性程度,表达了样本类属的中介性,即建立起了样本对于类别的不确定性的描述,能更客观地反映现实世界,从而成为聚类分析研究的主流。

为了优化聚类分析的目标函数,人们提出了现在相当流行和应用广泛的模糊C-均值FCM(FuzzyC-means)聚类算法。

该算法是从硬C-均值HCM(HardC-means)聚类算法发展而来的。

2.模糊C均值算法

2.1FCM算法准则

给定数据集

,其中每个元素包含s个属性。

模糊聚类就是要将X划分为c个类,

为C个类的聚类中心在模糊划分中,每一个样本点不能严格地被划分到某一类,而是以一定的隶属度属于某一类。

表示第j个样本点第i个类的隶属度。

且满足下式:

(2.1)

(2.2)

(2.3)

FCM算法的目标函数为:

(2.4)

其中,

为样本点

与聚类中心

之间的距离

则FCM算法就是要求满足

的情况下目标函数J的最小值,J的条件

极值可以由拉格朗日乘数法求得。

首先,J在(2.4)式下的条件极值可以表示成(2.5)

式,其中函数

为常数:

(2.5)

求偏导经过计算后得:

,用同样的方法

为最小值时

的值为:

(i=1,2…c)

2.2模糊C均值算法步骤

2.2.1简介

FCM算法有五个参数(

,A,c,m,ε),改变任何一个参数都将影响到FCM聚类的最终结果。

(1)

为初始隶属度矩阵,它直接影响到聚类中心的初始值,隶属度可以看做是数据对聚类中心作用力强度的表征,隶属度越大,数据对类中心的吸引力就越大,类中心的下一次迭代值受它的影响也就越大,从而影响到算法的迭代次数,也就影响了算法的计算时间。

(2)对称矩阵A,对称矩阵A也是一个重要参数,当A=I时,聚类类似于球状分布,当聚类形状为球状时,可给A赋予不同的矩阵形式,以适应不同的聚类要求,例如,聚类近似于条状或带形分布时。

(3)聚类数目c,c是影响聚类精度和聚类速度的参数,若c较大,就会使原本密集的簇分开;若c值较小则会使原本是比较分离的簇合并,使聚类结果不能满足客户的需要,计算所需要的系统内存和时间也要成倍的增加,这有时候是不能容忍的。

(4)加权指数m,Zadeh认为“加权指数m控制着模糊类间的分享程度”。

参数m控制着FCM聚类结果的模糊性,m值越大,所得到的分类矩阵模糊程度就越大。

当m→∞时,U中所有的元素接近1/c,距离就失去了意义。

所以要使用FCM算法分析数据就必需选取合适的m值。

当然这并不意味着小的m值就对应好的聚类结果,因为较大的加权指数m还具有抑制噪声的功能,在噪声污染的数据中模糊聚类有着重要的作用。

因此在不同的应用领域,m值的选取也有其不同的范围。

(5)收敛阈值ε,ε也是影响聚类精度和聚类速度的参数。

数值过大时,会导致算法过早收敛,聚类结果不稳定,特别是在初始参数不确定的条件下,这种现象更为普遍和明显。

当阈值过小时,则可能会导致过度计算,既浪费时间,又可能发生无法收敛的问题。

2.2.2FCM算法具体步骤

初始化:

取模糊加权指数m=2,聚类的类别数c(2≤c≤n),n为数据样本点的个数,迭代停止阈值ε,初始的聚类中心值

,以及迭代次数b=0;

步骤一:

用公式(2-7)计算由隶属度的值所组成的划分矩阵

(2-7)

步骤二:

用公式(2-8)更新聚类中心。

(2-8)

步骤三:

若v(b)-v(b+1)<ε,则算法停止并输出划分U和聚类中心V,否则令b=b+1,转向执行步骤一。

3.模糊C均值聚类算法的Matlab实现

3.1实验数据

_Record_

X

Y

Z

Type

Record_#1

1739.94

1675.15

2395.96

3

Record_#2

373.3

3087.05

2429.47

4

Record_#3

1756.77

1652

1514.98

3

Record_#4

864.45

1647.31

2665.9

1

Record_#5

222.85

3059.54

2002.33

4

Record_#6

877.88

2031.66

3071.18

1

Record_#7

1803.58

1583.12

2163.05

3

Record_#8

2352.12

2557.04

1411.53

2

Record_#9

401.3

3259.94

2150.98

4

Record_#10

363.34

3477.95

2462.86

4

Record_#11

1571.17

1731.04

1735.33

3

Record_#12

104.8

3389.83

2421.83

4

Record_#13

499.85

3305.75

2196.22

4

Record_#14

2297.28

3340.14

535.62

2

Record_#15

2092.62

3177.21

584.32

2

Record_#16

1418.79

1775.89

2772.9

1

Record_#17

1845.59

1918.81

2226.49

3

Record_#18

2205.36

3243.74

1202.69

2

Record_#19

2949.16

3244.44

662.42

2

Record_#20

1692.62

1867.5

2108.97

3

Record_#21

1680.67

1575.78

1725.1

3

Record_#22

2802.88

3017.11

1984.98

2

Record_#23

172.78

3084.49

2328.65

4

Record_#24

2063.54

3199.76

1257.21

2

Record_#25

1449.58

1641.58

3405.12

1

Record_#26

1651.52

1713.28

1570.38

3

Record_#27

341.59

3076.62

2438.63

4

Record_#28

291.02

3095.68

2088.95

4

Record_#29

237.63

3077.78

2251.96

4

Record_#30

1702.8

1639.79

2068.74

Record_#31

1877.93

1860.96

1975.3

Record_#32

867.81

2334.68

2535.1

Record_#33

1831.49

1713.11

1604.68

Record_#34

460.69

3274.77

2172.99

Record_#35

2374.98

3346.98

975.31

Record_#36

2271.89

3482.97

946.7

Record_#37

1783.64

1597.99

2261.31

Record_#38

198.83

3250.45

2445.08

Record_#39

1494.63

2072.59

2550.51

Record_#40

1597.03

1921.52

2126.76

Record_#41

1598.93

1921.08

1623.33

Record_#42

1243.13

1814.07

3441.07

Record_#43

2336.31

2640.26

1599.63

Record_#44

354

3300.12

2373.61

Record_#45

2144.47

2501.62

591.51

Record_#46

426.31

3105.29

2057.8

Record_#47

1507.13

1556.89

1954.51

Record_#48

343.07

3271.72

2036.94

Record_#49

2201.94

3196.22

935.53

其中前29组数据为已分类好的数据,用于学习及验证,看是否与已给出的聚类结果一致。

后20组数据为待识别的数据。

3.2模糊C均值聚类程序分析

Matlab中自带有模糊C均值聚类的程序,所以直接调用就可实现聚类,该程序为:

[Center,U,obj_fcn]=fcm(data,cluster_n)

其中Center代表聚类中心

U代表由隶属度组成的划分矩阵

obj_fcn代表在迭代过程中的目标函数值

data代表待聚类数据

cluster_n为聚类的组数

程序中还用到了如下语句:

1.通过[Center,U,obj_fcn]=fcm(data,cluster_n)得到的聚类中心和隶属度,将各个点分类。

maxU=max(U);%寻找最大隶属度

index1=find(U(1,:

)==maxU)%找到属于第一类的点

index2=find(U(2,:

)==maxU)%找到属于第二类的点

index3=find(U(3,:

)==maxU)%找到属于第三类的点

index4=find(U(4,:

)==maxU)%找到属于第四类的点

2.直观的观察四组聚类结果

line(data(index1,1),data(index1,2),data(index1,3),'linestyle','none','marker','*','color','g');

line(data(index2,1),data(index2,2),data(index2,3),'linestyle','none','marker','*','color','r');

line(data(index3,1),data(index3,2),data(index3,3),'linestyle','none','marker','+','color','b');

line(data(index4,1),data(index4,2),data(index4,3),'linestyle','none','marker','+','color','y');

3.3Matlab实现及结果分析

3.3.1前29组数据的聚类分析

1.前29组数据的聚类程序

clearall

data=[1739.941675.152395.96

373.33087.052429.47

1756.7716521514.98

864.451647.312665.9

222.853059.542002.33

877.882031.663071.18

1803.581583.122163.05

2352.122557.041411.53

401.33259.942150.98

363.343477.952462.86

1571.171731.041735.33

104.83389.832421.83

499.853305.752196.22

2297.283340.14535.62

2092.623177.21584.32

1418.791775.892772.9

1845.591918.812226.49

2205.363243.741202.69

2949.163244.44662.42

1692.621867.52108.97

1680.671575.781725.1

2802.883017.111984.98

172.783084.492328.65

2063.543199.761257.21

1449.581641.583405.12

1651.521713.281570.38

341.593076.622438.63

291.023095.682088.95

237.633077.782251.96

];

[center,U,obj_fcn]=fcm(data,4)

plot3(data(:

1),data(:

2),data(:

3),'o');

grid;

maxU=max(U);

index1=find(U(1,:

)==maxU)

index2=find(U(2,:

)==maxU)

index3=find(U(3,:

)==maxU)

index4=find(U(4,:

)==maxU)

line(data(index1,1),data(index1,2),data(index1,3),'linestyle','none','marker','*','color','g');

line(data(index2,1),data(index2,2),data(index2,3),'linestyle','none','marker','*','color','r');

line(data(index3,1),data(index3,2),data(index3,3),'linestyle','none','marker','+','color','b');

line(data(index4,1),data(index4,2),data(index4,3),'linestyle','none','marker','+','color','y');

title('模糊C均值聚类分析图');

xlabel('第一特征坐标');

ylabel('第二特征坐标');

zlabel('第三特征坐标');

2.实验结果及分析

Iterationcount=1,obj.fcn=15682616.695522

Iterationcount=2,obj.fcn=11653961.331769

Iterationcount=3,obj.fcn=9119718.776584

Iterationcount=4,obj.fcn=6749981.025963

Iterationcount=5,obj.fcn=5568174.608885

Iterationcount=6,obj.fcn=5172439.796387

Iterationcount=7,obj.fcn=4868367.892072

Iterationcount=8,obj.fcn=4473302.792618

Iterationcount=9,obj.fcn=4283336.750297

Iterationcount=10,obj.fcn=4152104.975270

Iterationcount=11,obj.fcn=4048650.988456

Iterationcount=12,obj.fcn=3992027.823158

Iterationcount=13,obj.fcn=3970326.734500

Iterationcount=14,obj.fcn=3963611.524872

Iterationcount=15,obj.fcn=3961736.224221

Iterationcount=16,obj.fcn=3961236.668319

Iterationcount=17,obj.fcn=3961106.553349

Iterationcount=18,obj.fcn=3961073.041430

Iterationcount=19,obj.fcn=3961064.459819

Iterationcount=20,obj.fcn=3961062.268852

Iterationcount=21,obj.fcn=3961061.710351

Iterationcount=22,obj.fcn=3961061.568098

Iterationcount=23,obj.fcn=3961061.531881

Iterationcount=24,obj.fcn=3961061.522662

Iterationcount=25,obj.fcn=3961061.520316

Iterationcount=26,obj.fcn=3961061.519719

Iterationcount=27,obj.fcn=3961061.519567

Iterationcount=28,obj.fcn=3961061.519528

Iterationcount=29,obj.fcn=3961061.519518

%Iterationcount代表迭代次数,观察这组数据,当迭代了29次时,迭代过程中的目标函数值趋于稳定时,此时停止迭代,计算出聚类中心,隶属度等结果

center=

1.0e+003*

1.20201.78922.9333

2.33613.17470.9674

1.72341.73611.8822

0.30783.18552.2762

%迭代完成后四类数据的聚类中心

U=

Columns1through14

0.28820.01390.05370.79890.02660.84340.09420.08080.00860.03040.02700.02440.01660.0209

0.03670.00610.04250.02220.01650.01960.02210.59020.00570.01840.01300.01380.01130.9096

0.63590.00920.87870.12080.02280.06960.86420.26470.00710.02200.94940.01740.01360.0415

0.03920.97090.02500.05810.93410.06740.01950.06420.97860.92920.01060.94440.95850.0279

Columns15through28

0.02250.89670.14120.01200.03870.06750.02850.13450.00980.02540.81800.04500.01450.0129

0.89930.01080.03860.94800.84370.01820.01390.52290.00470.88710.02750.03130.00620.0077

0.04750.07360.78720.02470.07590.89730.94730.23720.00690.05320.10410.90290.00950.0107

0.03060.01890.03310.01540.04170.01700.01030.10540.97860.03420.05040.02080.96980.9687

Column29

0.0055

0.0028

0.0041

0.9876

%每组数据对应四个聚类中心的隶属度,第n列代表第n组数据,分别对应四个聚类中心的隶属度值。

obj_fcn=

1.0e+007*

1.5683

1.1654

0.9120

0.6750

0.5568

0.5172

0.4868

0.4473

0.4283

0.4152

0.4049

0.3992

0.3970

0.3964

0.3962

0.3961

0.3961

0.3961

0.3961

0.3961

0.3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1