MCPcopy Create free account
hub / github.com/Dod-o/Statistical-Learning-Method_Code / E_step

Function E_step

EM/EM.py:82–108  ·  view source on GitHub ↗

EM算法中的E步 依据当前模型参数,计算分模型k对观数据y的响应度 :param dataSetArr: 可观测数据y :param alpha0: 高斯模型0的系数 :param mu0: 高斯模型0的均值 :param sigmod0: 高斯模型0的方差 :param alpha1: 高斯模型1的系数 :param mu1: 高斯模型1的均值 :param sigmod1: 高斯模型1的方差 :return: 两个模型各自的响应度

(dataSetArr, alpha0, mu0, sigmod0, alpha1, mu1, sigmod1)

Source from the content-addressed store, hash-verified

80
81
82def E_step(dataSetArr, alpha0, mu0, sigmod0, alpha1, mu1, sigmod1):
83 '''
84 EM算法中的E步
85 依据当前模型参数,计算分模型k对观数据y的响应度
86 :param dataSetArr: 可观测数据y
87 :param alpha0: 高斯模型0的系数
88 :param mu0: 高斯模型0的均值
89 :param sigmod0: 高斯模型0的方差
90 :param alpha1: 高斯模型1的系数
91 :param mu1: 高斯模型1的均值
92 :param sigmod1: 高斯模型1的方差
93 :return: 两个模型各自的响应度
94 '''
95 #计算y0的响应度
96 #先计算模型0的响应度的分子
97 gamma0 = alpha0 * calcGauss(dataSetArr, mu0, sigmod0)
98 #模型1响应度的分子
99 gamma1 = alpha1 * calcGauss(dataSetArr, mu1, sigmod1)
100
101 #两者相加为E步中的分布
102 sum = gamma0 + gamma1
103 #各自相除,得到两个模型的响应度
104 gamma0 = gamma0 / sum
105 gamma1 = gamma1 / sum
106
107 #返回两个模型响应度
108 return gamma0, gamma1
109
110def M_step(muo, mu1, gamma0, gamma1, dataSetArr):
111 #依据算法9.2计算各个值

Callers 1

EM_TrainFunction · 0.85

Calls 1

calcGaussFunction · 0.85

Tested by

no test coverage detected