摘要:
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
,