- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模式识别 实验二 c均值算法
PAGE \* MERGEFORMAT 1
1实验目的
熟悉c均值算法,通过程序语言实现该算法,比较每个聚类的初始均值不同时,算法结果的差别。理解动态聚类算法的算法思想。
2实验内容和要求
写程序实现c均值算法,并用表中的三维数据进行测试,下面给出了每种测试的类别数目和初始值。不要求编程环境,可以使用C,MATLAB等。
(1)c=2, m1(0)=(1,1,1)T, m2(0)=(-1,1,-1)T。
(2)c=2, m1(0)=(0,0,0)T, m2(0)=(1,1,-1)T。
将(2)得到的结果与(1)中的结果进行比较,并解释差别,包括迭代次数的差别。
(3)c=3, m1(0)=(0,0,0)T, m2(0)=(1,1,1)T, m3(0)=(-1,0,2)T。
(4)c=3, m1(0)=(-0.1,0,0.1)T, m2(0)=(0,-0.1,0.1)T, m3(0)=(-0.1,-0.1,0.1)T。
将(4)得到的结果与(3)中的结果进行比较,并解释差别,包括迭代次数的差别。
数据如下表所示:
样本编号
1
-7.82
-4.58
-3.97
2
-6.68
3.16
2.71
3
4.36
-2.19
2.09
4
6.72
0.88
2.80
5
-8.64
3.06
3.50
6
-6.87
0.57
-5.45
7
4.47
-2.62
5.76
8
6.73
-2.01
4.18
9
-7.71
2.34
-6.33
10
-6.91
-0.49
-5.68
11
6.18
2.81
5.82
12
6.72
-0.93
-4.04
13
-6.25
-0.26
0.56
14
-6.94
-1.22
1.13
15
8.09
0.20
2.25
16
6.18
0.17
-4.15
17
-5.19
4.24
4.04
18
-6.38
-1.74
1.43
19
4.08
1.30
5.33
20
6.27
0.93
-2.78
3实验原理
K均值聚类,即众所周知的C均值聚类,已经应用到各种领域。它的核心思想如下:算法把n个向量xj(1,2…,n)分为c个组Gi(i=1,2,…,c),并求每组的聚类中心,使得非相似性(或距离)指标的价值函数(或目标函数)达到最小。当选择欧几里德距离为组j中向量xk与相应聚类中心ci间的非相似性指标时,价值函数可定义为:
(6.2)
这里是组i内的价值函数。这样Ji的值依赖于Gi的几何特性和ci的位置。
一般来说,可用一个通用距离函数d(xk,ci)代替组I中的向量xk,则相应的总价值函数可表示为:
(6.3)
为简单起见,这里用欧几里德距离作为向量的非相似性指标,且总的价值函数表示为(6.2)式。
划分过的组一般用一个c×n的二维隶属矩阵U来定义。如果第j个数据点xj属于组i,则U中的元素uij为1;否则,该元素取0。一旦确定聚类中心ci,可导出如下使式(6.2)最小uij:
(6.4)
重申一点,如果ci是xj的最近的聚类中心,那么xj属于组i。由于一个给定数据只能属于一个组,所以隶属矩阵U具有如下性质:
(6.5)
且
(6.6)
另一方面,如果固定uij则使(6.2)式最小的最佳聚类中心就是组I中所有向量的均值:
, (6.7)
这里|Gi|是Gi的规模或。
为便于批模式运行,这里给出数据集xi(1,2…,n)的K均值算法;该算法重复使用下列步骤,确定聚类中心ci和隶属矩阵U:
步骤1:初始化聚类中心ci,i=1,…,c。典型的做法是从所有数据点中任取c个点。
步骤2:用式(6.4)确定隶属矩阵U。
步骤3:根据式(6.2)计算价值函数。如果它小于某个确定的阀值,或它相对上次价值函数质的改变量小于某个阀值,则算法停止。
步骤4:根据式(6.5)修正聚类中心。返回步骤2。
该算法本身是迭代的,且不能确保它收敛于最优解。K均值算法的性能依赖于聚类中心的初始位置。所以,为了使它可取,要么用一些前端方法求好的初始聚类中心;要么每次用不同的初始聚类中心,将该算法运行多次。此外,上述算法仅仅是一种具有代表性的方法;我们还可以先初始化一个任意的隶属矩阵,然后再执行迭代过程。
4实验结果与分析
4.1当 c=2时,
m1(0)=(1,1,1)T, m2(0)=(-1,1,-1)T
m1(0)=(0,0,0)T, m2(0)=(1,1,-1)T
current Je i
文档评论(0)