动态聚类法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模式识别——动态聚类法K-均值算法&ISODATA算法
专业:
班级:
学号:
姓名:
一、实验目的
1.理解聚类的过程
2.理解并掌握K-均值算法的过程
3.理解并掌握ISODATA算法(迭代自组织数据分析算法)的过程
二、实验原理
2.1 K-均值算法
第一步:选择K个初始聚类中心,
第二步:逐个将待分模式样本{X}按最小距离准则分配给某个聚类中心,
若则
其中,k表示迭代次序,表示第j个聚类,是聚类中心。
第三步:分配完成后,计算各个聚类的新中心
其中,是第j类中所含样本数
第四步:
如果则回到第二步,将模式样本重新聚类,重复迭代计算。如果,则算法收敛,结束。
2.2 ISODATA算法
ISODATA算法加入一些试探步骤,构成人机交互结构,可以利用中间结果所获得的经验进行调整
第一步:将N个样本模式{X}读入,预选个初始聚类中心,个数可以不等于预期的中心个数
预定初值:
K:预期的聚类中心数目
:每一类中最少的样本数目
:两聚类中心之间的最小距离,小于此两聚类合并
:一个聚类域中样本距离分布标准差
L:在一次迭代运算中可以合并的聚类中心的个数
I:迭代运算的次数
第二步:将各模式样本按最小距离准则分给各聚类
则
第三步:如果中的样本数,取消该子集,
第四步:修正各聚类中心:
第五步:计算中样本到聚类中心的平均距离
第六步:计算全部模式样本与相应聚类中心的总平均距离(为每一类中样本数)
第七步:判断分裂,合并及迭代运算
1.如果迭代次数已达I次(最后一次),置=0(无需新中心),跳到第十四步,
结束
2.如果,即聚类中心的数目等于或不到规定的一半,进入第八步,分裂。
3.如果迭代运行次数是偶数或,跳到第十一步,合并。如果不符合上
面两个条件,则进入第八步。
第八步:分裂处理
计算每个聚类中各样本到聚类中心的标准差矢量
其中表示n维中的第i个分量,,j表示第j类,j=1,2,…
第九步:对各个标准差{}求其最大分量
第十步:在最大分量集{}中,若有,同时满足:
(1)和
(2)
做分裂处理,将分裂成两个新中心,和,同时
其中,即将置于的最大分量之上,完成分裂之后,返回第二
步,否则继续。
合并:
第十一步:计算全部类中心间的距离
第十二步:比较和给定的最小距离,将的值排序,第十三步:将距离为的两个中心,合并
虽然,但实验中,我们每次只合并一个最小的
第十四步:若迭代已达最后一次,迭代结束
否则到第一步,可改变参数,若无需改变参数则跳到第二步,继续迭代。
三、实验过程与分析
3.1 K-均值算法
实验中,对iris数据进行聚类,由于已知iris数据为三类,即setosa,versicolour 和virginica。因此为了后面判断聚类是否正确,对三类数据分别设置了标志位,第一类数据setosa第五列置1,第二类versicolour第五列置0,第三类数据virginica 第五列置-1。
聚类结果如表1所示:
表中每个数字表示实验所得的聚类中包含真正属于这一类的数据个数。例如第一行数据表示实验所得的第一聚类有50个数,这50个数中有50个是属于setosa,0个属于versicolour,0个属于virginica。即可以看出对第一类数据完全聚类正确。
表1 K-均值算法实验结果
实验结果分析:
第一类数据完全聚类正确,第二类和第三类数据聚类时会发生错误。说明二三类数据较为相似,难以进行完全正确的聚类
实验结果与初始聚类中心的选取有一定的关系,如果选取不当将陷入死循环。
例如当初始的聚类中心全部同一类中的数据时,无法得到聚类结果
3.2 ISODATA算法
首先,实验中初值的预定:
预期的聚类中心数目:K = 3
预设聚类中心数目:Nc =4
每一类中最少的样本数目:=30
两聚类中心之间的最小距离,小于此两聚类合并:=0.8
一个聚类域中样本距离分布标准差:=0.3
在一次迭代运算中可以合并的聚类中心的个数:L=1
迭代运算的次数:I=50
分裂参数:r = 0.2
实验结果如表2所示:
表2 ISODATA算法实验结果
实验结果分析:
当预定参数如上面所示时,实验结果表明,第一类数据可以准确的聚类,但是二三类数据会有一定的错误。
3.2.1改变预设聚类中心数目Nc对实验结果的影响
实验中,预设一个初始的聚类中心数目Nc,这个数值会随着迭代的进行而改变,现在研究其他初始条件不变,仅改变Nc时对聚类结果的影响。实验结果如下:
(1)Nc=2
表3 Nc=2时ISODATA算法实验结果
(2)Nc=3
表4 Nc=3时ISODATA算法实验结果
(3)Nc=4
表5 Nc=4时ISODATA算法实验结果
(4)Nc=5
表6 Nc=5时ISODATA算法实验结果
实验结果分析:
从实验结果可以看出,当其余的初始条件不变时,改变初始的聚类中心数目Nc不会对实验结果产生影响。这是因为实验时会根据迭代的具体情况进行分裂合并等操作改变聚类中心的数目,所以初始的聚类中心数目对实验结果不会产生影响
3.2.2改变每一类中最少的样本数目对实验结果的影响
实验中,需要预设每一类中最少的样本数目,现在研究其他初始条件不变,仅改变时对聚类结果的影响
(1)=20
表7 =20时ISODATA算法实验结果
(2)=30
表8 =30时ISODATA算法实验结果