4.5.2 训练算法:从词向量计算概率
需要注意的地方:(因为这两个问题,一直看不懂该训练算法的思想)
1.本算法的目的是为了计算p(w|ci),并不是为了计算p(ci|w)。
2.p(w|ci)=该词条在该类别中出现次数 / 该类别中所有词条出现的总数目。【针对二分类问题】
p(ci|w) = p(w|ci) * p(ci) / p(w)
该算法得到了p(w|ci) 和 p(ci)
'''
函数功能:计算每个特征在每个类别下的概率,即p(w|c),以向量形式返回
输入:转化为词向量的文档矩阵,所对应的标签向量
输出:类别0下的个特征概率,p(wi|0):[p(w1|0),p(w2|0),p(w3|0).....]
类别1下的个特征概率,p(wi|1):[p(w1|1),p(w2|1),p(w3|1).....]
类别1出现的概率,p(1)(因为例子为二分类问题,知道p(1),则可知道p(0))
函数思想:通过统计每个特征在每个类别中出现的次数,再除以该类别出现的次数,即为该特征在该类别下的概率
用两个和词条数等长的向量分别存放每个特征在相应类别下的概率
用两个变量分别存放类别出现的次数
通过遍历文档集合,因为文档向量中是0(无该词),1(有该词).则统计出现次数时只要相加即可。
p(w1|0)=在类别0中,w1出现的概率,就=w1出现的次数/类别0中所