资源简介
对统计学习方法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
- 上一篇:简单的python购物车程序
- 下一篇:knn 字符识别 python
评论
共有 条评论