(完整版)matlab实现Kmeans聚类算法.pdfVIP

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

文档评论(0)

1亿VIP精品文档

相关文档