1
模式识别与智能计算的MATLAB实现
1.12.3.2 10.3.2 聚类数目未知的聚类问题的蚁群算法
10.3.2 聚类数目未知的聚类问题的蚁群算法

在聚类问题中,还有一种情况是聚类数目为未知的。在这种问题的蚁群算法中,可以将样本视为具有不同属性的蚂蚁,聚类中心为蚂蚁要寻找的“食物源”。所以样本聚类过程就是蚂蚁寻找食物源的过程。

设X是待分类的数据集,N为样品的特征数。聚类算法过程如下:

①初始分配N个样本各自为一类,共有N类。

②计算类wi与类wj之间的欧氏距离:

alt

其中,dij表示类i到类j之间的欧氏距离;alt为聚类中心向量;Ni为类wi中样本数量。

③计算各路径上的信息素量。设r为聚类半径,τij(t)是t时刻wi到wj路径上残留的信息素,路径(i,j)上的信息素量为

alt

其中,r=A+dmin+(dmax-dmin)·B,A、B为常量参数。

④计算类wi归并到wj的概率:

alt

其中,S={s∣dsj≤r,s=1,2,…,j-1,j+1,…,M},s代表某一类号,S代表到第j类距离小于或等于r的所有类号集合;M为当前的总类数;ηis(t)为权重参数。

⑤若pij(t)≥p0,则wi归并于wj邻域,类别数减1。p0为一给定的概率值。重新计算归并后聚类中心。

⑥判断是否有归并。若无归并,则停止循环;否则,转到第②步继续迭代。