一、概率建模
在概率建模中,我们用各种event以及event发生的概率来描述一个模型。这里的event以及其相关联的参数(条件概率等),就是我们模型的参数。
二、naive bayesian
例如在朴素贝叶斯对邮件分类进行建模的时候,邮件出现某个词便为一个event,有n关注的词,那么我们用Xn代表n个event,P(Xi)代表了第i个event发生的边缘概率(即第i个词出现在语料中的概率)。接着,我们用Y(0,1)代表邮件分类那么P(Y=1|Xi)即为在Xi发生(第i个词出现)的情况下,Y=1(邮件分类为1)的概率。
用严谨数学语言来描述,则是(x,y)的样本都由P(X,Y)独立同分布(iid)产生。
所以,我们要求解的问题也非常明确P(Y=1|X1,X2...Xn)即在我们知道这些词是否出现的情况下,获得其邮件分类的概率。简写为P(Y|X)
由Bayesian公式Posterior = Likelihood * Prior / Evidence
P(Y|X) = P(X|Y)*P(Y) / P(X)
其中P(Y|X) 也叫conditional prob, P(X|Y) 就是其opposite conditional prob(也就是Likelihood)
直接计算Likelihood比较困难,因为X事件组合太多,项会非常多。其参数量指数级的,如果Y有K个分类,每个Xi有Si种可能性,则项为K*S1*S2...Sn。如果做条件独立假设后,项则为K*(S1+S2...Sn)。比如在简单垃圾邮件分类种,如果不做Independent Assumption,参数量为2^(n+1),如果作出假设,参数量为4n
在这个模型中,假设任意Xi与Xj事件相互独立后P(Xi|Xj) = P(Xi),则最后求解的Likelihood可以参数化为如下项:
P(X|Y) = P(X1|Y) * P(X2|Y) * .... P(Xn|Y)
三、inference
我们利用贝叶斯公式,参数化了这个模型,最终求解的,就是贝叶斯公式中的Posterior。所以预估的过程,就是给指定样本计算其后验概率的过程。最终要预估的分类Y,就是后验概率最大的Y。
另外,由于贝叶斯公式中的Evidence,P(X)对于给定的样本,其值是固定的,所以模型可以简化为 label=argmax(Y=y) { P(Y=y) * Likelihood}
在二分类中,这样相当于把阈值设为0.5,而当所有参数都是可以求解的时候(P(X)也能解出),可以直接计算其真实概率,然后再进行判断。例如垃圾邮件分类中比较注重准确率(不希望太多false positive),可以将阈值设置为0.9
四、参数求解
例如在邮件分类的问题中,所有的概率参数项可以通过统计得出。
而在一些其他的问题中,参数如何求解,请看概率建模的参数求解
五、扩展
对于朴素贝叶斯最重要的假设就是,X间互相独立,而这个假设是非常强的,Strong Assumption,通常跟实际的情况有所差距,会导致模型的bias较大。当他们互相依赖时,则为Bayesian Network。