机器学习算法:EM算法
EM算法 适用问题:概率模型参数估计 模型特点:含隐变量的概率模型 学习策略:极大似然估计、极大后验概率估计 学习的损失函数:对数似然损失 学习算法:迭代算法 EM算法 给定的训练样本是,样例间独立,我们想找到每个样例隐含的类别z,能使得p(x,z)最大。p(x,z)的最大似然估计如下: 第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。但是直接求一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。 EM是一种解决存在隐含变量优化问题的有效方法。竟然不能直接最大化,我们可以不断地建立的下界(E步),然后优化下界(M步)。这句话比较抽象,看下面的。 对于每一个样例i,让表示该样例隐含变量z的某种分布,满足的条件是。(如果z是连续性的,那么是概率密度函数,需要将求和符号换做积分符号)。比如要将班上学生聚类,假设隐藏变量z是身高,那么就是连续的高斯分布。如果按照隐藏变量是男女,那么就是伯努利分布了。 可以由前面阐述的内容得到下面的公式: import numpy as np #Numpy是Python的一个科学计算的库,提供了矩阵运算的功能 import math pro_A, pro_B, por_C = 0.5, 0.5, 0.5 data=[1,1,0,1,0,0,1,0,1,1] def pmf(i, pro_A, pro_B,