动态聚类法-实验报告

《模式识别》实验报告 动态聚类法

姓名:滕超淋 学号:3112037009 专业:生物医学工程

k -均值算法

一、实验原理

实验数据:IRIS 数据。分为三种类型,每种类型中包括50个4维的向量。 实验方法:K-均值算法 算法步骤:

1. 选择K 个初始聚类中心Z1(1),Z2(1),...,Zk(1).聚类中心随迭代次数而变,括号中的数字表示迭代次序。

2. 逐个将待分类样本{X}按最小距离准则分配到K 个中心的某一个中心,以下公式进行判断:

中k 为迭代次数,Zj(k)为聚类中心。

3. 分配完后,下来计算每个聚类的新中心Zj(k+1)。计算公式如下:

Zj k +1 =1/Ni X

x ∈Sj(k)

Ni 是j 类样本的个数,以均值向量作为新的中心。

4. 如果Zj(k+1)≠Zj(k),则回到第二步,将模式样本重新逐个划分,继续迭代计算。如果Zj(k+1) =Zj(k),则算法收敛,结束。

二、实验步骤

(1)从IRIS_DATA.txt文件中读取估计参数用的样本,并任意选取三个样本作为初始聚类中心。

(2)计算距离,按最小距离原则进行分类。

(3

)计算新的聚类中心,并判断新的聚类中心是否与本次迭代的聚类中心一

样。如果一样则计算结束,否则继续迭代。

三、实验结果及分析

选取不同的初始聚类中心对结果影响较大,特别是选取同一类的样本作为初始聚类中心的时候分类结果不理想。由于第一类与第二类、第三类区别较大,所以能很好的分类出来,但是第二类和第三类的样本很近,而且有一些点相重叠,致使分类结果不理想。以下是实验结果:

需要进一步改进和完善。

通过与原数据比较,第一类即t1分类完全正确,然而t2,t3不理想。算法

一、原理介绍

ISODATA 算法

Isodata ,迭代自组织分析,通过设定初始参数而引入人机对话环节,并使

用归并与分裂的机制,当某两类聚类中心距离小于某一阈值时,将它们合并为一类,当某类标准差大于某一阈值或其样本数目超过某一阈值时,将其分为两类。在某类样本数目少于某阈值时,需将其取消。如此,根据初始聚类中心和设定的类别数目等参数迭代,最终得到一个比较理想的分类结果。

二、算法设计

第一步:将个模式样本{ ,i=1,2,3,…, }读入,确定C 个初始聚类中心和6个初

始参数(K ,θN,θc,θs,L ,I )。

第二步:将N 个模式样本分给最近的聚类,假如

Dj=min(‖x-zj ‖,i=1,2,…,), 即‖x-zj ‖的距离最小,则x ∈Sj 。 第三步:如果Sj 中的样本数Nj

第五步:计算各聚类域Sj 中诸聚类中心间的平均距离: 第六步:计算全部模式样本对其相应聚类中心的总平均距离: 第七步:判别分裂、合并及迭代运算等步骤:

① 如迭代运算次数已达I 次,即最后一次迭代,置θc = 0(无需新中心), 跳到第十四步,运算结束。

② 如Nc ≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入第八步,将已有的聚类分裂。

③ 如迭代运算的次数是偶次,或Nc ≥2K,不进行分裂处理,跳到第十一步(合并处理) ;

如不符合以上两个条件(即既不是偶次迭代,也不是≥2K),则进入第八步,进行分裂处理。 分裂处理:

第八步:计算各个聚类中样本到聚类中心距离的标准差向量: 第九步:求每一标准差向量{σj}中的最大分量

第十步:在任一最大分量集{σj=1,2, …,}中,如有σj>θS(该值给定),同

时又满足以下二条件中之一:

(a) Djmean>Dmean和即Sj 中样本总数超过规定值一倍以上, (b )N c≤K/2,则将Zj 分裂为两个新的聚类中心Zj+和Zj−, 且类别数加

Nc+1。

分裂方法是在Zj+相应分量加上k* σjmax,在Zj−的相应分量减去k*σjmax,其中k=0.5;。如果本步完成了分裂运算,则跳回第二步;否则,继续。 第十一步:计算全部聚类中心的距离:Dij =||Zi−Zj||, 其中i=1,2, …, Nc-1

j=i+1, …,Nc

第十二步:比较Dij 与θc值,将Dij

{ Di1j1, Di2j2, …, Diljl },假设Di1j1

第十三步:将距离为Di1j1的两个聚类中心zi1和zj1合并,得新中心为

Zl∗=N

1

il+Njl

NilZil+NjlZjl , l=1,2,…,L

式中,被合并的两个聚类中心向量,分别以其聚类域内的样本数加权,使其成为真正的平均向量。

第十四步:如果是最后一次迭代运算(即第I 次),算法结束。否则回到第一步由操作者改变输入参数;或回到第二步继续迭代,不改变参数。

三.实验步骤 (1)主程序如下:

(2) 分类函数

四. 实验结果

下列各表中,K 为预期的聚类数目;theta_N为每一聚类样本域的最小数目;theta_S为每一聚类样本域距离分布的标准差;theta_C为两个聚类中心的最小距离;L 为一次迭代运算中可以合并的聚类中心的最多数,I 为迭代次数。 1、[K theta_N theta_S theta_C L I]=[6 8 0.5 1 3 8]时,

类别数Nc

类别 类别 正确分类个数 正确率

第一类 第一类 50 1

第二类 第二类 45 0.90

第三类 第三类 41 0.82

总体正确率

总体正确率

0.91

类别数Nc

3

4、[K theta_N theta_S theta_C L I]=[6 8 1 1 3 8]时,

类别数Nc

类别 类别 类别 类别 类别 第一类 第一类 第一类 第一类 第一类 第二类 第二类 第二类 第二类 第二类 第三类 第三类 第三类 第三类 第三类 总体正确率

总体正确率

总体正确率

总体正确率

总体正确率

类别数Nc

类别数Nc

类别数Nc

类别数Nc

从上面的表格可以看到,对于不同的参数设置ISODATA 算法总能将样本正确的分为三类。但是,分类结果却与参数的设置有关。由表1、2、3可以看出,当改变theta_N、theta_C和theta_S时,对分类结果影响不大。但当I 变化时,对分类结果的影响大,说明迭代次数结果有一定的影响。当迭代次数达到合适的值时,在增加次数对分类结果没有影响。

在实验中,我们可以随时调整K 、theta_N、theta_S、theta_C和L 的值来改变实验的分类率,比较灵活。 五. 总结

与K-均值算法的比较,K-均值算法初始聚类中心的选择对结果影响很大,而ISODATA 算法则更加灵活;从算法角度看, ISODATA算法与K-均值算法相似,但是 ISODATA算法加入了一些试探步骤,并且可以结合成人机交互的结构,使其能利用中间结果所取得的经验更好地进行分类。

《模式识别》实验报告 动态聚类法

姓名:滕超淋 学号:3112037009 专业:生物医学工程

k -均值算法

一、实验原理

实验数据:IRIS 数据。分为三种类型,每种类型中包括50个4维的向量。 实验方法:K-均值算法 算法步骤:

1. 选择K 个初始聚类中心Z1(1),Z2(1),...,Zk(1).聚类中心随迭代次数而变,括号中的数字表示迭代次序。

2. 逐个将待分类样本{X}按最小距离准则分配到K 个中心的某一个中心,以下公式进行判断:

中k 为迭代次数,Zj(k)为聚类中心。

3. 分配完后,下来计算每个聚类的新中心Zj(k+1)。计算公式如下:

Zj k +1 =1/Ni X

x ∈Sj(k)

Ni 是j 类样本的个数,以均值向量作为新的中心。

4. 如果Zj(k+1)≠Zj(k),则回到第二步,将模式样本重新逐个划分,继续迭代计算。如果Zj(k+1) =Zj(k),则算法收敛,结束。

二、实验步骤

(1)从IRIS_DATA.txt文件中读取估计参数用的样本,并任意选取三个样本作为初始聚类中心。

(2)计算距离,按最小距离原则进行分类。

(3

)计算新的聚类中心,并判断新的聚类中心是否与本次迭代的聚类中心一

样。如果一样则计算结束,否则继续迭代。

三、实验结果及分析

选取不同的初始聚类中心对结果影响较大,特别是选取同一类的样本作为初始聚类中心的时候分类结果不理想。由于第一类与第二类、第三类区别较大,所以能很好的分类出来,但是第二类和第三类的样本很近,而且有一些点相重叠,致使分类结果不理想。以下是实验结果:

需要进一步改进和完善。

通过与原数据比较,第一类即t1分类完全正确,然而t2,t3不理想。算法

一、原理介绍

ISODATA 算法

Isodata ,迭代自组织分析,通过设定初始参数而引入人机对话环节,并使

用归并与分裂的机制,当某两类聚类中心距离小于某一阈值时,将它们合并为一类,当某类标准差大于某一阈值或其样本数目超过某一阈值时,将其分为两类。在某类样本数目少于某阈值时,需将其取消。如此,根据初始聚类中心和设定的类别数目等参数迭代,最终得到一个比较理想的分类结果。

二、算法设计

第一步:将个模式样本{ ,i=1,2,3,…, }读入,确定C 个初始聚类中心和6个初

始参数(K ,θN,θc,θs,L ,I )。

第二步:将N 个模式样本分给最近的聚类,假如

Dj=min(‖x-zj ‖,i=1,2,…,), 即‖x-zj ‖的距离最小,则x ∈Sj 。 第三步:如果Sj 中的样本数Nj

第五步:计算各聚类域Sj 中诸聚类中心间的平均距离: 第六步:计算全部模式样本对其相应聚类中心的总平均距离: 第七步:判别分裂、合并及迭代运算等步骤:

① 如迭代运算次数已达I 次,即最后一次迭代,置θc = 0(无需新中心), 跳到第十四步,运算结束。

② 如Nc ≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入第八步,将已有的聚类分裂。

③ 如迭代运算的次数是偶次,或Nc ≥2K,不进行分裂处理,跳到第十一步(合并处理) ;

如不符合以上两个条件(即既不是偶次迭代,也不是≥2K),则进入第八步,进行分裂处理。 分裂处理:

第八步:计算各个聚类中样本到聚类中心距离的标准差向量: 第九步:求每一标准差向量{σj}中的最大分量

第十步:在任一最大分量集{σj=1,2, …,}中,如有σj>θS(该值给定),同

时又满足以下二条件中之一:

(a) Djmean>Dmean和即Sj 中样本总数超过规定值一倍以上, (b )N c≤K/2,则将Zj 分裂为两个新的聚类中心Zj+和Zj−, 且类别数加

Nc+1。

分裂方法是在Zj+相应分量加上k* σjmax,在Zj−的相应分量减去k*σjmax,其中k=0.5;。如果本步完成了分裂运算,则跳回第二步;否则,继续。 第十一步:计算全部聚类中心的距离:Dij =||Zi−Zj||, 其中i=1,2, …, Nc-1

j=i+1, …,Nc

第十二步:比较Dij 与θc值,将Dij

{ Di1j1, Di2j2, …, Diljl },假设Di1j1

第十三步:将距离为Di1j1的两个聚类中心zi1和zj1合并,得新中心为

Zl∗=N

1

il+Njl

NilZil+NjlZjl , l=1,2,…,L

式中,被合并的两个聚类中心向量,分别以其聚类域内的样本数加权,使其成为真正的平均向量。

第十四步:如果是最后一次迭代运算(即第I 次),算法结束。否则回到第一步由操作者改变输入参数;或回到第二步继续迭代,不改变参数。

三.实验步骤 (1)主程序如下:

(2) 分类函数

四. 实验结果

下列各表中,K 为预期的聚类数目;theta_N为每一聚类样本域的最小数目;theta_S为每一聚类样本域距离分布的标准差;theta_C为两个聚类中心的最小距离;L 为一次迭代运算中可以合并的聚类中心的最多数,I 为迭代次数。 1、[K theta_N theta_S theta_C L I]=[6 8 0.5 1 3 8]时,

类别数Nc

类别 类别 正确分类个数 正确率

第一类 第一类 50 1

第二类 第二类 45 0.90

第三类 第三类 41 0.82

总体正确率

总体正确率

0.91

类别数Nc

3

4、[K theta_N theta_S theta_C L I]=[6 8 1 1 3 8]时,

类别数Nc

类别 类别 类别 类别 类别 第一类 第一类 第一类 第一类 第一类 第二类 第二类 第二类 第二类 第二类 第三类 第三类 第三类 第三类 第三类 总体正确率

总体正确率

总体正确率

总体正确率

总体正确率

类别数Nc

类别数Nc

类别数Nc

类别数Nc

从上面的表格可以看到,对于不同的参数设置ISODATA 算法总能将样本正确的分为三类。但是,分类结果却与参数的设置有关。由表1、2、3可以看出,当改变theta_N、theta_C和theta_S时,对分类结果影响不大。但当I 变化时,对分类结果的影响大,说明迭代次数结果有一定的影响。当迭代次数达到合适的值时,在增加次数对分类结果没有影响。

在实验中,我们可以随时调整K 、theta_N、theta_S、theta_C和L 的值来改变实验的分类率,比较灵活。 五. 总结

与K-均值算法的比较,K-均值算法初始聚类中心的选择对结果影响很大,而ISODATA 算法则更加灵活;从算法角度看, ISODATA算法与K-均值算法相似,但是 ISODATA算法加入了一些试探步骤,并且可以结合成人机交互的结构,使其能利用中间结果所取得的经验更好地进行分类。


相关文章

  • [机电系统建模与仿真]实验指导书(研究生)
  • < 机电系统建模与仿真> 实 验 指 导 书 王红茹 编 写 适用专业: 机械工程 ____________ ____________ 2015年11月 江苏科技大学机械工程学院 实验一:多闭环直流伺服系统仿真分析 实验学时:2 ...查看


  • 第四章 教育管理日常统计
  • 第四章 教育管理日常统计 1.教育管理分类统计包括哪些项目,最组要的内容是哪三样? 包括学生统计分析.教师职工统计分析.教学与科研统计分析.财务与劳动工资及奖金统计分析.校舍与教学设备统计分析.体育运动与保健卫生统计分析等.最组要的是学生统 ...查看


  • 实验报告9-配置动态路由RIP
  • 实 验 报 告 课程名称 计算机网络基础 实验项目 配置动态路由RIP 专业班级 姓 名 学 号 指导教师 成 绩 日 期 实验9:利用动态NAPT实现局域网访问互联网 [实验名称] 利用动态NAPT实现局域网访问互联网. [实验目的] 掌 ...查看


  • 单管放大电路实验报告
  • 单管放大电路实验报告 1. 实验目的 1) 掌握放大电路直流工作点的调整和测量方法 2) 掌握放大电路主要性能指标的测量方法 3) 了解直流工作点对放大电路动态特性的影响 4) 掌握发射极负反馈电阻对放大电路性能的影响 5) 了解信号源内阻 ...查看


  • 七段数码管的动态扫描显示实验报告
  • 实验四 七段数码管的动态扫描显示 一. 实验目的 1. 进一步熟悉QuartusII 软件进行FPGA 设计的流程: 2. 掌握利用宏功能模块进行常用的计数器,译码器的设计: 3. 学习和了解动态扫描数码管的工作原理的程序设计方法: 二. ...查看


  • 精品作业分享_计算机网络-静动态路由设置(实验报告)
  • 静/动态路由设置 实验目的和要求 1.学习静态路由配置方法,理解路由器的工作原理: 2.了解路由器的RIP路由协议的原理: 3.熟悉掌握路由器的RIP路由协议的配置方法: 4.了解路由器的OSPF路由协议的原理: 实验软硬件要求 需要路由器 ...查看


  • 单片机实验设计报告
  • 单片机实验报告 实验名称:动态显示数码管实验 姓名:李瑞雪 王秋婉 张悦 班级:物联网2班 指导老师:王玉存 2016年1月19号 目 录 一.实验目的 二.实验所需硬件 三.实验设计思路 四.程序代码 五.设计体会 一.实验目的 通过设计 ...查看


  • 微机实验6
  • 姓 名: 专 业: 实验时间: 评定成绩:<微机实验及课程设计>实验报告 学号 61011108 东南大学 实验报告 实验六 8255 并行输入输出 学 号: 61011108 吴院电类 实 验 室: 2013年04月30日 报 ...查看


  • 原型评价法实验报告
  • 学期 实 验 报 告 实验课程名称 电子产品设计基础实验报告 专 业 班 级 电信1101 电信1102 撰 写 者 龚博涵 组 员 李成翰 韩磊 林智翔 陈鹏 杨日孟 实验指导教师 杨锆 一.实验目的 在电子产品研发过程中,对于界面设计以 ...查看


热门内容