博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转] Kmeans与Meanshift、EM算法的关系
阅读量:5118 次
发布时间:2019-06-13

本文共 1381 字,大约阅读时间需要 4 分钟。

Kmeans算法是一种经典的聚类算法,在模式识别中得到了广泛的应用,基于Kmeans的变种算法也有很多,模糊Kmeans、分层Kmeans等。

Kmeans和应用于混合高斯模型的受限EM算法是一致的。高斯混合模型广泛用于数据挖掘、模式识别、机器学习、统计分析。Kmeans的迭代步骤可以看成E步和M步,E:固定参数类别中心向量重新标记样本,M:固定标记样本调整类别中心向量。K均值只考虑(估计)了均值,而没有估计类别的方差,所以聚类的结构比较适合于特征协方差相等的类别。

Kmeans在某种程度也可以看成Meanshitf的特殊版本,Meanshift是一种概率密度梯度估计方法(优点:无需求解出具体的概率密度,直接求解概率密度梯度。),所以Meanshift可以用于寻找数据的多个模态(类别),利用的是梯度上升法。在06年的一篇CVPR文章上,证明了Meanshift方法是牛顿拉夫逊算法的变种。KmeansEM算法相似是指混合密度的形式已知(参数形式已知)情况下,利用迭代方法,在参数空间中搜索解。而KmeansMeanshift相似是指都是一种概率密度梯度估计的方法,不过是Kmean选用的是特殊的核函数(uniform kernel),而与混合概率密度形式是否已知无关,是一种梯度求解方式。PS:两种Kmeans的计算方法是不同的。

Vector quantization也称矢量量化:指一个向量用一个符号K来代替。比如有10000个数据,用Kmeans聚成100类即最有表征数据意义的向量,使得数据得到了压缩,以后加入的数据都是用数据的类别来表示存储,节约了空间,这是有损数据压缩。数据压缩是数据聚类的一个重要应用,也是数据挖掘的主要方法。

混合高斯模型是一系列不同的高斯模型分量的线性组合。在最大似然函数求极值时,直接求导存在奇异点的问题,即有时一个分量只有一个样本点,无法估计其协方差,导致其似然函数趋于无穷,无法求解。另一个问题是,用代数法求得的解是不闭合的,即求解的参数依赖于参数本身的值,变成一个鸡生蛋,蛋生鸡的问题。这些问题看似无解,但是可以使用迭代的方法如EMk均值等,预先设置一些参数,然后迭代求解。PS:也有用基于梯度的方法求解的。在求解混合模型时,有一个重要的概念即模型的可辨识性(如果无论样本的数量为多少都无法求出模型参数的唯一解,则称模型是不可辨识的),这是EM算法的前提。在实际应用时,由于EM算法的复杂度比K均值高,所以一般先用K均值大致收敛到一些点,然后用EM算法。EM算法求解混合模型的固然有效,但不能保证找到最大使然函数的最大值。

EM算法是求解具有隐变量的概率模型的最大似然函数的解的常用方法。当样本集是样本与隐变量一一对应时,数据集称为完整数据集,可以直接求解模型参数,但很多时候只知道样本,不知道其对应的隐变量,这是非完整数据集。所以求解模型参数的关键是隐变量的后验概率,由后验概率可以推出完整数据集用于求解参数。增量式的EM算法,每次只更新一个点,收敛速度更快。上述方法可以看成是无监督学习。

PSEM是一个似然函数下界最大化解法,保证了解法的收敛性。

转载于:https://www.cnblogs.com/PierreDelatour/archive/2011/11/12/2246612.html

你可能感兴趣的文章
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
poj1201 查分约束系统
查看>>
Red and Black(poj-1979)
查看>>
分布式锁的思路以及实现分析
查看>>
腾讯元对象存储之文件删除
查看>>
jdk环境变量配置
查看>>
安装 Express
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>
myeclipse插件安装
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>