摘要:ISODATA 算法是目前应用比较广泛的,通过引入参数而进行人机交互不断进行分裂
与合并的非监督分类算法。本文介绍了ISODATA基本原理与具体实现的过程,并用对参数
设定的影响进行了试验和分析。
关键词: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<Θn,取消样本子集。
第四步:修正聚类中心值
j=1,2,…,
第五步:计算各聚类域 Sj 中诸聚类中心间的平均距离:
第六步:计算全部模式样本对其相应聚类中心的总平均距离:
第七步:判别分裂、合并及迭代运算等步骤:
①如迭代运算次数已达 I 次,即最后一次迭代,置 θc = 0,跳到第十一步,运算结束。
②如≤K/2,即聚类中心的数目等于或不到规定值的一半,则进入第八步,将已有的聚类分裂。
③如迭代运算的次数是偶次,或≥2K,不进行分裂处理,跳到第十一步;如不符合以上两个条件(即既
不是偶次迭代,也不是≥2K),则进入第八步,进行分裂处理。
分裂处理:
第八步:计算聚类样本距离的标准差向量:
第九步:求每一标准差向量{,σj=1,2, …,}中的最大分量,以{σj=1,2, …,}代表。
第十步:在任一最大分量集{σj=1,2, …,}中,如有>θS(该值给定),同时又满足以下二条件中之一:
(a) ,即 Sj 中样本总数超过规定值一倍以上,
(b)Nc≤K/2,