题目:matlab 实现 Kmeans 聚类算法 姓 名 吴隆煌 学 号 4 1 1 5 8 0 0 7 背景知识 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选用的是特殊的核函数(uniform kernel),而与混合概率密度形式是否已知无关,是一种梯度求解方式
k-means是一种聚类算法,这种算法是依赖于点的邻域来决定哪些点应该分在一个组中
当一堆点都靠的比较近,那这堆点应该是分到同一组
使用 k-means,可以找到每一组的中心点
当然,聚类算法并不局限于 2维的点,也可以对高维的空间(3维,4维,等等)的点进行聚类,任意高维的空间都可以
上图中的彩色部分是一些二维空间点
上图中已经把这些点