题目: matlab 实现 Kmeans 聚类算法
姓 名
学 号
背景知识
简介:
Kmeans算法是一种经典的聚类算法, 在模式识别中得到了广泛的应
用,基于 Kmeans的变种算法也有很多,模糊 Kmeans、分层 Kmeans
等。
Kmeans和应用于混合高斯模型的受限 EM算法是一致的。高斯混合
模型广泛用于数据挖掘、模式识别、机器学习、统计分析。 Kmeans
的迭代步骤可以看成 E 步和 M步, E:固定参数类别中心向量重新
标记样本, M:固定标记样本调整类别中心向量。 K 均值只考虑(估
计)了均值,而没有估计类别的方差,所以聚类的结构比较适合于
特征协方差相等的类别。
Kmeans在某种程度也可以看成 Meanshitf 的特殊版本, Meanshift
是一种概率密度梯度估计方法 (优点:无需求解出具体的概率密度,
直接求解概率密度梯度。),所以 Meanshift 可以用于寻找数据的
多个模态(类别),利用的是梯度上升法。在 06 年的一篇 CVPR文
章上,证明了 Meanshift 方法是牛顿拉夫逊算法的变种。 Kmeans
和 EM算法相似是指混合密度的形式已知(参数形式已知)情况下,
利用迭代方法,在参数空间中搜索解。而 Kmeans和 Meanshift 相
似是指都是一种概率密度梯度估计的方法, 不过是 Kmean选用的是
特殊的核函数( uniform kernel ),而与混合概率密度形式是否已
知无关,是一种梯度求解方式。
k-means 是一种聚类算法,这种算法是依赖于点的邻域来决定哪些
点应该分在一个组中。当一堆点都靠的比较近,那这堆点应该是分
到同一组。使用 k-means,可以找到每一组的中心点。
当然,聚类算法并不局限于 2 维的点,也可以对高维的空间 ( 3 维,
维,等等)的点进行聚类,任意高维的空间都可以。
上图中的彩色部分是一些二维空间点。上图中已经把这些点分组
了,并使用了不同的颜色对各组进行了标记。这就是聚类算法要做
的事情。
这个算法的输入是:
1:点的数据(这里并不一定指的是坐标,其实可以说是向量)
2:K,聚类中心的个数(即要把这一堆数据分成几组)
所以,在处理之前,你先要决定将要把这一堆数据分成几组,即聚
成几类。但并不是在所有情况下,你都事先就能知道需要把数据聚
成几类的。但这也并不意味着使用 k-means 就不能处理这种情况,
下文中会有讲解。
把相应的输入数据,传入 k-means 算法后,当 k-means 算法运行完
后,该算法的输出是:
1:标签(每一个点都有一个标签,因为最终任何一个点,总会被
matlab实现Kmeans聚类算法 来自淘豆网m.daumloan.com转载请标明出处.