• 大小: 2KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: Python
  • 标签:

资源简介

对统计学习方法EM算法进行了python实现,并针对简单数据的高斯混合模型进行EM算法的参数估计,感兴趣的同学可以一起交流。

资源截图

代码片段和文件信息

from numpy import*

‘‘‘
E步:依据当前模型参数,计算分模型k对观测数据Yj的响应度
alphamiusigma: 高斯混合模型参数
NK:观测数据个数及分模型个数
yValue: 观测数据
‘‘‘
def eStep(yValueNKalphamiusigma):
    gama=zeros((NK))
    for j in range(N):
        Denom=0.0
        Numer=mat(zeros((1K)))
        for k in range(K):
            Numer[:k]=(alpha[k]*exp((-(yValue[j]-miu[k])**2)
                                     /(2*sigma[k]**2))/(2.506628*sigma[k]))#算分子
            Denom += Numer[:k]#算分母
        gama[j :] = Numer[::] / Denom
    return gama
‘‘‘
M步:计算新一轮迭代的模型参数
alphamiusigma: 高斯混合模型参数
NK:观测数据个数及分模型个数
yValue: 观测数据gama:E步计算结果
‘‘‘
def mStep(yValuegamaNKalphamiusigma):
    for k in range(K):
        sum1 sum2 sum3= 0.0 0.0 0.0
        Numer2=zeros((N1))
        sum1 = sum(multiply(gama[:k]yValue[:]))
        sum2 = sum(gama[:k])
        miu[k][0] = sum1/sum2#更新miu
        alpha

评论

共有 条评论

相关资源