本文介绍如何将传统的k-means算法套进进化聚类框架中。
将待聚类对象归一化为欧几里德空间中的单位向量。即在时间t上的对象由给出,其中每一个,并且距离矩阵
我们首先介绍一下传统的k-means算法。令t为固定的时间步长,令。这个算法首先需要设置k个聚类质心。,其中;质心的初始化可以随机指定或者使用前一个聚类集中的结果(增量k-means)。令closest(t)为所有接近质心的点集。即:
该算法在几个遍历中进行,在每个遍历过程中,它根据当前分配给该质心的数据元素更新每个质心。
然后将标准化为单位长度。算法经过足够多的遍历后终止,聚类由k个质点的集合给出。
我们定义k-means的快照质量:
(由于所有的点都在单位球面上,距离的上界为1)
我们定义历史成本函数,即两个聚类的距离:
f是一个将C的质心映射到C‘的函数。通过匹配C中的每一个质心到C’中的质心是计算两个聚类距离最可行的办法,然后把这些匹配的距离相加。
如前所述,我们使用贪婪近似算法来选择序列中的下一个集群。然而,在k-means的例子中,对于当前的质心来说,让为在中的最接近的质点。令为在时间t上聚类j的点的的数目;令为对应的数目。令。然后,更新:
换句话说,新的质心在非进化k-means建议的质心和从前一个时间步上的最接近匹配之间,通过cp和两个聚类的相对大小来加权。同样,它被标准化为单位长度,我们继续通常的k-means迭代。