k-means算法
k-means算法,也被称为k-平均或k-均值,是一种得到最广泛使用的聚类算法。相似度的计算根据一个簇中对象的平均值来进行。
算法首先随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象根据其与各个簇中心的距离,将它赋给最近的簇。然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。
准则函数试图使生成的结果簇尽可能地紧凑和独立。
算法5-1 k-means算法
输入:簇的数目k和包含n个对象的数据库。
输出:k个簇,使平方误差准则最小。
(1)assign initial value for means; /*任意选择k个对象作为初始的簇中心;*/
(2) REPEAT
(3) FOR j=1 to n DO assign each xj to the closest clusters;
(4) FOR i=1 to k DO / *更新簇平均值*/
(5) Compute /*计算准则函数E*/
(6) UNTIL E不再明显地发生变化。
1