博客
关于我
从EM算法理解k-means与GMM的关系
阅读量:180 次
发布时间:2019-02-28

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

EM(期望最大化)算法解决的是在概率模型中含有无法观测的隐含变量情况下的参数估计问题,EM算法只保证收敛到局部最优解。EM算法是在最大化目标函数时, 先固定一个变量使整体函数变为凸优化函数, 求导得到最值, 然后利用最优参数更新被固定的变

量, 进入下一个循环。

k-means:E过程,根据固定的各个簇的中心点,对每个样本就近分配所属的簇;M过程,根据样本划分好的簇,重新计算簇的中心点,更新E过程的固定值。

GMM:高斯混合模型,即用多个高斯分布函数的线形组合来对数据分布进行拟合。 理论上, 高斯混合模型可以拟合出任意类型的分布。当数据事实上有多个类, 或者我们希望将数据划分为一些簇时, 可以假设不同簇中的样本各自服从不同的高斯分布, 由此得到的聚类算法称为高斯混合模型。在该假设下, 每个单独的分模型都是标准高斯模型, 其均值μi和方差Σi是待估计的参数。 此外, 每个分模型都还有一个参数πi, 可以理解为权重或生成数据的概率。 我们认为每个样本点的生成过程如下:

GMM算法同k-means一样,需要设定超参数簇个数K值。高斯混合模型的计算, 便成了最佳的均值μ, 方差Σ、 权重π的寻找。

GMM的E过程,先固定每个模型的均值和方差,计算该样本属于各个簇的概率;M过程,使用E中的概率,更新各个模型的均值和方差。所以每次循环时, 先固定当前的高斯分布不变, 获得每个数据点由各个高斯分布生成的概率。 然后固定该生成概率不变, 根据数据点和生成概率, 获得一个组更佳的高斯分布。 循环往复, 直到参数的不再变化, 或者变化非常小时, 便得到了比较合理的一组高斯分布。相比于K均值算法的优点是, 可以给出一个样本属于某类的概率是多少。

 

总结,k-means算法和GMM算法的E过程都是先固定模型参数然后对样本分类,M过程都是根据E过程中每个样本对应好的类,更新模型参数。

转载地址:http://wydi.baihongyu.com/

你可能感兴趣的文章
node.js模块、包
查看>>
node.js模拟qq漂流瓶
查看>>
node.js的express框架用法(一)
查看>>
Node.js的交互式解释器(REPL)
查看>>
Node.js的循环与异步问题
查看>>
Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
查看>>
nodejs + socket.io 同时使用http 和 https
查看>>
NodeJS @kubernetes/client-node连接到kubernetes集群的方法
查看>>
NodeJS API简介
查看>>
Nodejs express 获取url参数,post参数的三种方式
查看>>
nodejs http小爬虫
查看>>
nodejs libararies
查看>>
vue3+element-plus 项目中 el-switch 刷新后自动触发change?坑就藏在这里!
查看>>
nodejs npm常用命令
查看>>
nodejs npm常用命令
查看>>
Nodejs process.nextTick() 使用详解
查看>>
NodeJS yarn 或 npm如何切换淘宝或国外镜像源
查看>>
nodejs 中间件理解
查看>>
nodejs 创建HTTP服务器详解
查看>>
nodejs 发起 GET 请求示例和 POST 请求示例
查看>>