自然语言处理之混合高斯模型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