高斯混合模型

R || 高斯混合模型GMM

好久不见. 提交于 2019-12-06 01:51:08
GMM模型的R实现 预备知识: EM算法原理 GMM算法原理 友情提示:本代码配合GMM算法原理中的步骤阅读更佳哦! 本文分为一元高斯分布的EM算法以及多元高斯分布的EM算法,分别采用两本书上的数据《统计学习方法》和《机器学习》。 一元高斯混合模型 步骤: 1、设置模型参数的初始值,以及给出测试的数据 data <- c(- 67 ,- 48 , 6 , 8 , 14 , 16 , 23 , 24 , 28 , 29 , 41 , 49 , 56 , 60 , 75 ) a = c( 0.5 , 0.5 ) #系数 u = c( 0 , 1 ) #初始均值 sigma2 =c( 9 , 9 ) #初始方差 data数据来自《统计机器学习》 2:E步 迭代计算gamma值,也就是响应度 首先利用 dnorm() 计算高斯公式的密度值, sapply() 来向量化带入函数计算 p <- t(sapply( data ,dnorm,u,sigma)) amatrix <- matrix(rep(a, N ),nrow= N ,byrow = T ) #便于计算 r = (p * amatrix) / rowSums(p * amatrix) #r(gamma):分模型k对观测数据data的响应度 M步 迭代更新均值、方差和模型系数 u <- colSums( data *r)

python3 || 高斯混合模型GMM

坚强是说给别人听的谎言 提交于 2019-12-06 01:42:36
GMM模型的python实现 预备知识: EM算法原理 GMM算法原理 友情提示:本代码配合GMM算法原理中的步骤阅读更佳哦! 本文分为一元高斯分布的EM算法以及多元高斯分布的EM算法,分别采用两本书上的数据《统计学习方法》和《机器学习》。 一元高斯混合模型 python未完成,可以看R实现的。 R || 高斯混合模型GMM 多元高斯混合模型 多元高斯混合模型采用的是《机器学习》中的西瓜数据集。 多元高斯分布中的密度值python中没有直接函数,需要自己编写 import numpy as np # 高斯分布的概率密度函数 def dnorm (x,u,sigma2) : """ x:样本 u:均值 sigma2:方差或协差阵 """ if not isinstance(sigma2,np.matrix): sigma2 = np.mat(sigma2) if not isinstance(x,np.matrix): x=np.mat(x) n = np.shape(x)[ 1 ] expOn = float(- 0.5 * (x-u) * sigma2.I * (x-u).T) #python中一维矩阵默认为行向量,所以和书上公式有差异 divBy = np.sqrt(pow( 2 *np.pi,n)) * pow(np.linalg.det(sigma2), 0.5 )

高斯混合模型

走远了吗. 提交于 2019-12-05 11:26:50
假设每个簇的数据都符合高斯分布,当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果 用多个高斯分布函数的线性组合来对数据分布进行拟合 生成式模型 核心思想 每个单独的分模型都是标准高斯模型,其均值 \(\mu_i\) 和方差 \(\sum_i\) 是待估计的参数。此外,每个分模型还有一个权重参数 \(\pi_i\) 。公式为: \[p(x) = \sum \limits_{i=1}{K} \pi_i N(x|\mu_i, \sum_i)\] 生成过程:先选择一个高斯分布,再生成一个样本点 求解方法 EM算法 与K均值比较 相同点 需要指定K值 EM算法求解 局部最优 不同点 可以给出属于某类的概率 概率密度的估计 生成新的样本点 来源: https://www.cnblogs.com/weilonghu/p/11922376.html

EM 算法(三)-GMM

人走茶凉 提交于 2019-12-04 21:01:18
高斯混合模型 混合模型,顾名思义就是几个概率分布密度混合在一起,而高斯混合模型是最常见的混合模型; GMM,全称 Gaussian Mixture Model,中文名高斯混合模型,也就是由多个高斯分布混合起来的模型; 概率密度函数为 K 表示高斯分布的个数,α k 表示每个高斯分布的系数,α k >0,并且 Σα k =1, Ø(y|θ k ) 表示每个高斯分布,θ k 表示每个高斯分布的参数,θ k =(u k ,σ k 2 ); 举个例子 男人和女人的身高都服从各自的高斯分布,把男人女人混在一起,那他们的身高就服从高斯混合分布; 高斯混合模型就是用混合在一起的身高数据,估计男人和女人各自的高斯分布 小结 GMM 实际上分为两步,第一步是选择一个高斯分布,如男人数据集,这里涉及取到某个分布的概率,α k , 然后从该分布中取一个样本,等同于普通高斯分布 GMM 常用于聚类,也就是把每个概率密度分布聚为一类;如果概率密度分布为已知,那就变成参数估计问题 EM 解释 GMM EM 的核心是 隐变量 和 似然函数 求导结果如下 GMM 的 EM 算法 算法流程 参考资料: https://blog.csdn.net/jinping_shi/article/details/59613054 《统计学习方法》李航 来源: https://www.cnblogs.com/yanshw/p

使用高斯混合模型建立更精确的聚类

笑着哭i 提交于 2019-12-04 16:19:30
介绍 我很喜欢研究无监督学习问题。它们为监督学习问题提供了一个完全不同的挑战,用我拥有的数据进行实验的发挥空间要比监督学习大得多。毫无疑问,机器学习领域的大多数发展和突破都发生在无监督学习领域。 无监督学习中最流行的技术之一就是聚类。这是一个我们通常在机器学习的早期学习的概念,它很容易理解。我相信你曾经遇到过,甚至参与过顾客细分、购物篮分析等项目。 但问题是聚类有很多方面。它并不局限于我们之前学过的基本算法。它是一种强大的无监督学习技术,我们可以在现实世界中准确地使用它。 > 高斯混合模型就是我想在本文中讨论的一种聚类算法。 想预测一下你最喜欢的产品的销售情况吗?或许你想通过不同客户群体的视角来理解客户流失。无论用什么方法,你都会发现高斯混合模型非常有用。 在本文中,我们将采用自下而上的方法。因此,我们首先来看一下聚类的基础知识,包括快速回顾一下k-means算法。然后,我们将深入讨论高斯混合模型的概念,并在Python中实现它们。 目录 聚类简介 k-means聚类简介 k-means聚类的缺点 介绍高斯混合模型 高斯分布 期望最大化EM算法 高斯混合模型的期望最大化 在Python中实现用于聚类的高斯混合模型 聚类简介 在我们开始讨论高斯混合模型的实质内容之前,让我们快速更新一些基本概念。 注意:如果你已经熟悉了聚类背后的思想以及k-means聚类算法的工作原理

【转】高斯混合模型的终极理解

妖精的绣舞 提交于 2019-12-02 19:47:17
高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬。本文尝试用通俗的语言全面介绍一下GMM,不足之处还望各位指正。 首先给出GMM的定义 这里引用李航老师《统计学习方法》上的定义,如下图: 定义很好理解,高斯混合模型是一种混合模型,混合的基本分布是高斯分布而已。 第一个细节:为什么系数之和为0? PRML上给出过一张图: 这图显示了拥有三个高斯分量的一个维度的GMM是如何由其高斯分量叠加而成。这张图曾经一度对我理解GMM造成了困扰。因为如果是这样的话,那么这三个高斯分量的系数应该都是1,这样系数之和便为3,才会有这样直接叠加的效果。而这显然不符合GMM的定义。因此,这张图只是在形式上展现了GMM的生成原理而并不精确。 那么,为什么GMM的各个高斯分量的系数之和必须为1呢? 其实答案很简单,我们所谓的GMM的定义本质上是一个概率密度函数。而概率密度函数在其作用域内的积分之和必然为1。GMM整体的概率密度函数是由若干个高斯分量的概率密度函数线性叠加而成的,而每一个高斯分量的概率密度函数的积分必然也是1,所以,要想GMM整体的概率密度积分为1,就必须对每一个高斯分量赋予一个其值不大于1的权重,并且权重之和为1。 第二个细节:求解GMM参数为什么需要用EM算法 总所周知

高斯混合模型GMM和EM算法

一世执手 提交于 2019-12-02 06:02:46
高斯混合模型的基本思想是任何一个曲线,无论多么复杂,都可以用若干个高斯曲线来逼近它。 高斯混合模型也被视为一种聚类方法,是机器学习中对“无标签数据”进行训练得到的分类结果。其分类结果由概率表示,概率大者,则认为属于这一类。 matlab中关于高斯混合模型的内容集中在gmdistribution类中,使用gmdistribution创建GMM,使用fitgmdist根据给定样本生成GMM,使用cluster对GMM样本点进行聚类分析,pdf表示GMM的概率密度函数,random由GMM生成随机变量,posterior计算GMM每个高斯分布分量的后验概率。 来源: https://www.cnblogs.com/larry-xia/p/11733539.html

第九章-EM算法

天大地大妈咪最大 提交于 2019-11-29 22:14:55
从第九章开始,学习总结的东西有所不同了,第2-8章是分类问题,都属于监督学习,第9章EM算法是非监督学习。本文主要是总结EM算法的应用以及处理问题的过程和原理推导。 EM算法 EM算法(期望极大算法 expectation maximization algorithm) 是一种迭代算法。当我们面对概率模型的时候,既有 观测变量 ,又含有 隐变量 或者潜在变量。如果 概率模型 的变量都是 观测变量 ,那么给定数据,可以直接使用 极大似然估计法 或者 贝叶斯估计模型 估计参数,但是,当模型含有 隐变量 的时候,就不能简单地这样估计,此时,在1977年,Dempster等人总结提出EM算法: E步:求期望(expectation);M步:求极大值(maximization) 。 \[ 输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|\theta),条件分布P(Z|Y,\theta)。\\ 输出:模型参数\theta。\\ (1)选择参数的初值\theta^{(0)},开始迭代。\\ (2)**E步:**记\theta^{(i)}为第i次迭代参数\theta的估计值,在第i+1次迭代的E步,\\计算\begin{aligned} Q(\theta,\theta^{(i)}) =& E_Z\big[\ln P(Y,Z|\theta) | Y, \theta^{(i)}\big] \

【机器学习】高斯混合模型(GMM)算法及其实现

∥☆過路亽.° 提交于 2019-11-29 19:32:41
相关视频可见 皮皮学机器学习 高斯混合模型(GMM) 学完了EM算法之后,就情不自禁地想学习一下高斯混合模型了。 高斯混合模型是具有如下形式的概率分布模型。 P ( x ) = ∑ k = 1 K W k g ( x ∣ μ k , ∑ k ) P(x)=\sum_{k=1}^KW_kg(x|\mu_k,\sum_k) P ( x ) = k = 1 ∑ K ​ W k ​ g ( x ∣ μ k ​ , k ∑ ​ ) 现在我们来解释一下上式的参数,K为GMM中成分的个数,也就是说有几个高斯分布,g是这几个高斯分布对应的分布密度函数,均值 μ \mu μ 是其均值,协方差矩阵 ∑ \sum ∑ ,W是每个成分的权重。 案例引入 依然使用一个男女身高为例: 在校园里随机抽取2000个学生,其中有男有女,已知男生,女生的身高都服从高斯分布,这两个高斯分布的均值和方差我们都不知道,另外由于某种原因,我们也不知道2000个学生里男生和女生的个数,现在我们要求出两个分布的均值和方差,还有男女比例。 1.初始化参数 2.计算每条身高数据为男/女分布的概率 该条样本所属于男生/女生分布的概率,这里用R表示,其实这一步就是EM算法中的E步,求期望 一维高斯函数: g ( h ∣ μ , σ ) = 1 2 π σ e − 1 2 σ ( x − μ ) 2 g(h|\mu,\sigma)=

高斯混合模型(GMM)和EM算法

戏子无情 提交于 2019-11-26 21:52:55
EM算法 EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。每一次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximazation)。不断循环直到算法收敛,最后得出参数的估计。 之所以要搞得这么麻烦,就是因为有隐变量(latent variable)这个东西的存在,隐变量是无法观测的,这就造成了我们的观测值和想要预测的参数值之间的差距。如果所有的变量都是可观测的,我们使用极大似然法就可以得出对参数的估计了。 一般地,我们用Y表示观测随机变量的数据,Z表示隐随机变量的数据,Y和Z连在一起称为完全数据。假设给定观测数据Y,其概率分布是 P ( Y | θ ) //--> , θ //--> 为要估计的参数,那么Y的对数似然函数为 L ( θ ) = log P ( Y | θ ) //--> 。Y和Z的联合概率分布是 P ( Y , Z | θ ) //--> ,它的对数似然函数为 log P ( Y , Z | θ ) //--> 。 下面介绍EM算法的步骤: 输入:观测变量数据Y,隐变量数据Z, 联合分布 P ( Y , Z | θ ) //--> ,条件分布 P ( Z | Y , θ ) //--> (这里的两个分布应该指的是形式) 输出:模型参数 (1)选择参数的初始值 θ ( 0 ) //--> (2)E步: θ ( i )