【统计学习】混合高斯模型EM估计算法实现

本文介绍了混合高斯模型在自然语言处理中的应用,通过EM(期望最大化)算法进行聚类和密度估计。文章详细阐述了模型的公式推导,解释了模型的工作原理,强调了GMM与K-means的区别,并讨论了EM算法的收敛性和局部最优问题。同时,提供了程序验证,展示运行结果和关键代码片段。
摘要由CSDN通过智能技术生成

自然语言处理之混合高斯模型EM估计

公式推导

在这里插入图片描述
在这里插入图片描述

模型理解

1、仍然是一个概率模型,高斯混合模型是对高斯模型进行简单的扩展,GMM使用多个高斯分布的组合来刻画数据分布,每个高斯分模型就代表了一个类(一个Cluster),对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率;
2、所有高斯分量的权重系数大于零,且和为1; 3、混合高斯模型中待求的参数θ包括每个分量的高斯分布均值和方差,各个分量权重;
4、初始化GMM时,一般传入“混合高斯分布分量数”、“约定协方差矩阵属性(高斯分布的形状)”、“EM迭代运行次数”;
5、GMM里,BIC(Bayesian Information Criteria)准则是一种有效的成分数确定方法;
6、GMM和K-means很像,只是GMM是学习出一些概率密度函数,给出每个点到每个类的概率,所以GMM除了可以用作聚类,也可以用作密度估计;
7、GMM得出的所属类别概率值,在很多场合适用性更强(概率值连续性),比单纯的得出分类结果更具有可解释性; 8、EM
算法具备收敛性,但并不保证找到全局最大值,有可能找到局部最大值。解决方法是初始化几次不同的参数进行迭代,取结果最好的那次。

程序验证

1.结果

鼠标输入点:
在这里插入图片描述

运行结果:
在这里插入图片描述

2.代码

参数迭代部分:

    def Gamma(self):
        gm_n_k = []
        for i in range(self.N):
            sum_k = (sum(self.pi[j] *
                         self.f(self.data
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值