摘要:

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

取消样本子集。

第四步:修正聚类中心值

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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐