特价网站建设价格,北京短视频培训学校,网站内容建设ppt,深圳宝安外贸网站建设公司最大期望算法(EM算法) #xff0c;曾入选“数据挖掘十大算法”中#xff0c;是最常见的隐变量估计方法#xff0c;在机器学习中有极为广泛的用途#xff0c;例如常被用来学习高斯混合模型的参数。EM算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法#xff… 最大期望算法(EM算法) 曾入选“数据挖掘十大算法”中是最常见的隐变量估计方法在机器学习中有极为广泛的用途例如常被用来学习高斯混合模型的参数。EM算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法其中概率模型依赖于无法观测的隐性变量。通常分两步实现: 第一步是计算期望E利用对隐藏变量的现有估计值计算其最大似然估计值 第二步是最大化M最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中这个过程不断交替进行。 GMM (高斯混合模型) 是一个用于聚类的概率模型其使用了EM算法进行迭代计算高斯混合模型假设每个簇的数据都是符合高斯分布又叫正态分布的当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。
from sklearn.mixture import GaussianMixture
# GMM高斯混合模型聚类
gmm GaussianMixture(n_components3)
y_ gmm.fit_predict(X) 1、EM算法简介
1.1、EM算法概述
最大期望算法Expectation-maximization algorithm又译为期望最大化算法曾入选“数据挖掘十大算法”中可见EM算法在机器学习、数据挖掘中的影响力。EM算法是最常见的隐变量估计方法在机器学习中有极为广泛的用途例如常被用来学习高斯混合模型Gaussian mixture model简称GMM的参数。
EM算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法其中概率模型依赖于无法观测的隐性变量。
1.2、EM算法流程
EM算法是一种迭代优化策略由于它的计算方法中每一次迭代都分两步其中一个为期望步E步另一个为极大步M步所以算法被称为EM算法Expectation-Maximization Algorithm。
最大期望算法经过两个步骤交替进行计算 第一步是计算期望E利用对隐藏变量的现有估计值计算其最大似然估计值 第二步是最大化M最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中这个过程不断交替进行。
2、极大似然
2.1、似然函数 什么是极大似然首先来看一下似然函数, 在数理统计学中似然函数是一种关于统计模型中的参数的函数表示模型参数中的似然性。“似然性”与“或然性”或“概率”意思相近都是指某种事件发生的可能性。
2.2、极大似然
极大似然也叫最大似然就是似然函数的最大值而极大似然就相当于最大可能的意思。
比如一位同学和一位猎人一起外出打猎一只野兔从前方窜过。只听一声枪响野兔应声到下如果要你推测这一发命中的子弹是谁打的你就会想只发一枪便打中由于猎人命中的概率一般大于那位同学命中的概率从而推断出这一枪应该是猎人射中的。这个例子所作的推断就体现了最大似然法的基本思想。
2.3、最大似然示例计算 最大似然估计 (maximum likelihood estimation, MLE) 一种重要而普遍的求估计量的方法。最大似然估计明确地使用概率模型其目标是寻找能够以较高概率产生观察数据的系统发生树。最大似然估计是一类完全基于统计的系统发生树重建方法的代表。
2.4、极大似然步骤 写出似然函数 对似然函数取对数并整理 求导数令导数为0得到似然方程 解似然方程得到的参数即为所求
3、EM算法入门
3.1、问题描述
我们需要调查学校的男生和女生的身高分布 我们抽取100个男生和100个女生将他们按照性别划分为两组。然后统计抽样身高数据。我们知道他们的身高服从正态分布自然属性一般服从正态分布但分布的均值 和方差 是未知的就是要估计的参数。
问题我们知道样本所服从的概率分布模型和一些样本我们需要求解该模型的参数。 我们已知的条件有两个 样本服从的分布模型正态分布 随机抽取的样本。 我们需要求解模型的参数。
根据已知条件通过极大似然估计求出未知参数。总的来说极大似然估计就是用来估计模型参数的统计学方法。
多数情况下我们是根据已知条件来推算结果而极大似然估计是已知结果寻求使该结果出现的可能性最大的条件以此作为估计值。
4、EM算法进阶
4.1、聚类问题
我们目前有100个男生和100个女生的身高但是我们不知道这200个数据中哪个是男生的身高哪个是女生的身高即抽取得到的每个样本都不知道是从哪个分布中抽取的。
这个时候对于每个样本就有两个未知量需要估计 这个身高数据是来自于男生数据集合还是来自于女生聚类问题 男生、女生身高数据集的正态分布的参数分别是多少
4.2、解决方案
对具体的男女生身高问题使用EM算法求解流程如下 初始化参数先初始化男生身高的正态分布的参数如均值1.64方差6.0 计算分布计算每一个人更可能属于男生分布或者女生分布 重新估计参数通过分为男生的n个人来重新估计男生身高分布的参数最大似然估计女生分布也按照相同的方式估计出来更新分布。 这时候两个分布的概率也变了然后重复步骤2~3直到参数不发生变化为止
5、Jensen不等式
设f是定义域为实数的函数如果对所有的实数xf(x)的二阶导数都大于0那么f是凸函数。 Jensen不等式定义如下 如果f是凸函数X是随机变量那么。当且仅当X是常量时该式取等号。其中E(X)表示X的数学期望。 注Jensen不等式应用于凹函数时不等号方向反向。当且仅当x是常量时该不等式取等号。
总结如下
如果f是凸函数X是随机变量那么E[f(X)]f(E[X])通俗的说法是函数的期望大于等于期望的函数。特别地如果f是严格凸函数当且仅当P(X EX) 1即X是常量时上式取等号即E[f(X)] f(EX)。
6、EM算法公式推导
暂不深入研究
7、GMM高斯混合模型 (默认数据属于正太分布)
高斯混合模型是一个用于聚类的概率模型其使用了EM算法进行迭代计算高斯混合模型假设每个簇的数据都是符合高斯分布又叫正态分布的当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。
高斯分布的概率密度函数为 GMM算法是EM算法的一种落地实现方式。
GMM算法示例
import numpy as np
from sklearn import datasets
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture
from sklearn.cluster import KMeans
# 创建数据并可视化
X,y datasets.make_blobs(n_samples1500,cluster_std[1.0, 2.5, 0.5],random_state170)
plt.figure(figsize(12,4))
plt.rcParams[font.family] STKaiti
plt.rcParams[font.size] 20
plt.subplot(1,3,1)
plt.scatter(X[:,0],X[:,1],c y)
plt.title(原始数据,pad 20)# Kmeans聚类
kmeans KMeans(3)
kmeans.fit(X)
y_ kmeans.predict(X)
plt.subplot(1,3,2)
plt.scatter(X[:,0],X[:,1],c y_)
plt.title(KMeans聚类效果,pad 20)# GMM高斯混合模型聚类
gmm GaussianMixture(n_components3)
y_ gmm.fit_predict(X)
plt.subplot(1,3,3)
plt.scatter(X[:,0],X[:,1],c y_)
plt.title(GMM聚类效果,pad 20)plt.figtext(x 0.51,y 1.1,s KMeans VS GMM,ha center,fontsize 30)
plt.savefig(./GMM高斯混合模型.png,dpi 200)