您的位置:首页 > 其它

聚类算法分析——Kmeans算法

2015-09-07 22:00 134 查看
Kmeans算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。然后通过计算各个簇中数据点的平均值,更新簇中心,迭代至满足收敛条件。

Kmeans的目标函数:(这里以欧式距离作为衡量近邻标准进行分析)



其中,N是数据数目,C是划分簇的数目,rc 是一个0 1变量,当数据点xn被归类到c簇时为1,否则为0。

Kmeans 算法就是最小化这个目标函数,可采取迭代的方法:先固定uc,选择最优的簇,即将数据归类到离它最近的中心;下一步固定簇,选取最优的uc。这里可通过M对uc求导求得最优值,如步骤(2)公式所示,也就是对应簇中数据的平均值。

kmeans算法可分为两步骤进行:

(1) 根据C个簇的uc将每个数据点归类到离它最近的簇;



(2) 计算每个簇新的中心点。



不断迭代这两个步骤,直至每个簇的中心不再变化或者变化很小。

*备注:*uc的初始化问题。Matlab默认的是随机从样本中抽取C个数据点,并另外提供了三种方法,包括均匀抽取;抽取10%的子样本先使用聚类进行uc估计;构建C*P矩阵(P指样本数据的维度)。

(最近在研究图像分割,今天把Kmeans翻出来,实现的效果不是很好,基于像素值考虑的东西可能不全面,还在继续探索)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: