ISODATA算法实例:
此例中N 8,n 2。假设取初始值Nc 1,z1 1 x1 0 0 T,则运算步骤如下:
第一步:取K 2,θN 1,θS 1,θc 4,L 1,I 4
预选:K 预期的聚类中心数目;
θN 每一聚类域中最少的样本数目,若少于此数即不作为一个独立的聚类;
θS 一个聚类域中样本距离分布的标准差;
θc 两个聚类中心间的最小距离,若小于此数,两个聚类需进行合并;
L 在一次迭代运算中可以合并的聚类中心的最多对数;
I 迭代运算的次数。
第二步:因只有一个聚类中心,因此S1 x1, x2, …, x8 ,N1 8。
第三步:因N1 θN ,无子集可抛。
第四步:修改聚类中心
第五步:计算模式样本与聚类中心间的平均距离
第六步:计算全部模式样本和其对应聚类中心的总平均距离
第七步:因不是最后一次迭代,且Nc K/2,进入第八步
第八步:计算S1中的标准差向量
第九步:σ1中的最大分量是1.99,因此σ1max 1.99。
第十步:因σ1max θS 且Nc K/2,可将z1分裂成两个新的聚类。设,则
为方便起见,将和表示为z1和z2,Nc加1,返回第二步。
第二步(返回1):新的样本集为
S1 x4, x5, …, x8 ,N1 5
S2 x1, x2, x3 ,N2 3
第三步(返回1):因N1 θN 且N2 θN,无子集可抛。
第四步(返回1):修改聚类中心
第五步(返回1):计算模式样本与聚类中心间的平均距离,j 1,2
第六步(返回1):计算全部模式样本和其对应聚类中心的总平均距离
第七步(返回1):因是偶数次迭代,满足第七步的条件3,进入第十一步
第十一步:计算聚类对之间的距离
第十二步:比较D12 与θc ,D12 θc
第十三步:从上一步结果看出,聚类中心不发生合并。
第十四步:因不是最后一次迭代运算,判断是否需要修改给定的参数。
已获得所要求的聚类数目;
聚类之间的分离度大于类内样本分离的标准差;
每一聚类子集的样本数目都具有样本总数中足够大的比例。
因此,可认为聚类中心具有代表性,返回第二步。
第二~六步(返回2):与上一次迭代计算结果相同。
第七步(返回2):没有一种情况可满足,进入第八步。
第八步(返回2):计算S1 x4, x5, …, x8 和S2 x1, x2, x3 的标准差
第九步(返回2):σ1max 0.75,σ2max 0.82
第十步(返回2):分裂条件不满足,进入第十一步。
第十一步(返回2):与上一次迭代的结果相同,计算得到
第十二、十三步(返回2):与上一次迭代的结果相同。
第十四步(返回2):无新的内容加入本次迭代中,返回第二步。
第二~六步(返回3):与上一次迭代计算结果相同。
第七步(返回3):因是最后一次迭代,置θc 0,转至第十一步。
第十一步(返回3):同上一次迭代,
第十二步(返回3):与上一次迭代的结果相同。
第十三步(返回3):无合并发生。
第十四步(返回3):最后一次迭代,算法结束。