来自于百度
为减轻K-means算法对孤立点的敏感性,k中心点算法不采用簇中对象的平均值作为簇中心,而选用簇中离平均值最近的对象作为簇中心。
K中心算法的基本过程是:首先为每个簇随意选择一个代表对象,剩余的对象根据其与每个代表对象的距离(此处距离不一定是欧氏距离,也可能是曼哈顿距离)分配给最近的代表对象所代表的簇;然后反复用非代表对象来代替代表对象,以优质聚类质量。聚类质量用一个代价函数来表示。当一个中心点被某个非中心点替代时,除了未被替换的中心点外,其余各点被重新分配。
算法如下
输入:包含N个对象的数据库和簇数目K
输出:K个簇
1、随机选择K个代表对象作为初始的中心点
2、指派每个剩余对象给离它最近的中心点所代表的簇
3、随机地选择一个非中心点对象Y
4、计算用Y代替中心点X的总代价S
5、如果S为负,则用可用Y代替X,形成新的中心点
6、重复2、3、4、5.直到K个中心点不再发生变化。