K-means算法也称C-均值算法,其基本思想是:通过迭代,逐次移动各类的中心,直至得到最好的聚类结果为止。
K-means聚类算法的过程如下:先随机选取c个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:
(1)没有(或最小数目)对象被重新分配给不同的聚类。
(2)没有(或最小数目)聚类中心再发生变化。
(3)误差平方和局部最小。
现做具体说明,假设图像上的目标要分为5个类别,则K-均值算法如下:
第一步:适当地选取5个类的初始中心Z1,Z2,…,Z5,初始中心的选择对聚类结果有一定的影响。初始中心的选择一般将全部数据随机地分为5个类别,计算每类的重心,将这些重心作为5个类的初始中心。(www.xing528.com)
第二步:在进行第一次迭代中,对每一个像素X按如下的方法把它调整到5个类别中的某一类中去,即
如果,表明X属于Zj类。
第三步:在第二步,由于加入新元素,Zi的中心发生变化,要重新计算,此时
第四步:以新的中心再进行分类归属,如果没有新的对象被重新分配给其他的类,或者聚类中心不再发生改变,则迭代结束,否则转到第二步继续进行迭代。
K-means算法是一个迭代算法,迭代过程中类别中心按最小二乘误差的原则进行移动,因此类别中心的移动是合理的。其缺点是要事先已知类别数,如果类别数设定得不好,那么所得的结果就不能正确反映图像的分类。在实际中,类别数通常根据实验的方法来确定。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。