isodata 聚类分析实验

ISODATA算法

Iterative Self-Organizing Data Analysis Technigues Algorithm,迭代自组织的数据分析算法。

特点

可以通过类的自动合并(两类合一)与分裂(一类分为二),得到较合理的类型数目c。(聚类类型可变)

算法步骤

(1)参数

k:预期的聚类中心数目。

c: 初始聚类中心

thetaN:每一聚类中最少的样本数目,如果少于此数就不能作为一个独立的聚类。

thetaS :一个聚类域中样本距离分布的标准差(阈值)。

thetaC:两个聚类中心之间的最小距离,如果小于此数,两个聚类合

L:每次迭代允许合并的最大聚类对数目。

I :允许的最多迭代次数。

J : 迭代次数

给定n个混合样本,令J 1(迭代次数),预选c个起始聚合中心,Z(j) , j =1,2,...,c。

(2)计算每个样本与聚合中心的距离

选择距离最小的那个聚合中心,把样本放到那个聚合类中,其中nj 代表每一个聚类中心的样本数

(3)计算每个样本与聚合中心的距离

如果一个:若 nj< thetaN ,也就是某一个聚类子集样本数小于thetaN,则舍去子集 Xj,减一c = c -1,聚类类别减一。

(4)计算修改聚合中心

每一次迭代之后都要重新计算聚类中心

(5)计算类内距离平均值(每个聚类中的样本到聚类中心的平均距离)

(6)计算类内距离平均值(全部样本对其相应聚类中心的总平均距离)

(7)判别分裂、合并及迭代运算等步骤

  • 如迭代运算次数已达I 次,即最后一次迭代,结束,跳到⑾,运算结束。
  • 如 c < k/2,即聚类中心的数目等于或不到规定值的一半,则转⑻,将已有的聚类分裂。
  • 如迭代运算的次数是偶数,或c >= 2K ,则不进行分裂,跳到⑾,若不符合上述两个条件,则进入⑻,进行分裂处理

(8)计算每个聚合的标准偏差向量

  • 计算每个聚合的的标准偏差向量(共 c 个)
  • 每个聚合要计算d个标准偏差( d 代表维度)

(9)计算每个聚合的最大的标准偏差分量 max(sigma_j) ( c 个)

(10) 如果max(sigma_j) > thetaC(两个聚类中心之间的最小距离),且满足下面两个条件,分裂

新的两个分类中心的聚类中心为如下

(11) 未完

发表评论

电子邮件地址不会被公开。 必填项已用*标注