机器学习|朴素贝叶斯算法(三)-深入理解朴素贝叶斯原理

机器学习|朴素贝叶斯算法(一)-贝叶斯简介及应用
机器学习|朴素贝叶斯算法(二)-用sklearn实践贝叶斯
机器学习|朴素贝叶斯算法(三)-深入理解朴素贝叶斯原理

机器学习|朴素贝叶斯算法(一)-贝叶斯简介及应用中通过计算穿长裤中女生的概率解释了贝叶斯算法。这里在提供另外一种思路:它给我们提供的是一种根据数据集$D$的内容变化更新假设概率$H$的方法。

这种理解在《贝叶斯思维:统计建模的python学习法》中定义为“历时诠释”,“历时”意味着某些事情随着时间而发生,即是假设的概率随着看到的新数据而变化。

根据贝叶斯定理:

$$ P\left ( H|D \right )=\frac{P\left(H \right )P\left(D|H\right)}{P\left(D\right)} $$

每一项的意思如下(结合第一篇女生穿长裤问题分析):

$H$---女生,$D$---穿长裤

$P(H)$称为先验概率,即在得到新数据前某一假设的概率
$P(H|D)$称为后验概率,即在看到新数据后,我们要计算的该假设的概率
$P(D|H)$是该假设下得到这一数据的概率,称为似然
$P(D)$是在任何假设下得到这一数据的概率,称为标准化常量

有些情况下,我们可以基于现有背景进行得知先验概率。比如在女生穿长裤问题中,我们就能知道女孩在学校所占人数的比例(概率)是多少,即使不知道具体的比例,我们也可以根据学校的性质(工科学校或者其他)来大概假设出女孩的概率。
**
在其他情况下,先验概率是偏主观性的。这也是频率学派提出的对贝叶斯学派的批评之一。因为对某一先验概率,由于使用不同背景信息作出判断,或者因为针对相同的前提条件作出了不同解读**。

似然是贝叶斯计算中最容易知道的部分,比如女孩中穿长裤的概率

标准化常量被定义为在所有的假设条件下这一数据出现的概率,因为考虑的是最一般的情况,所以不容易确定这个常量在具体应用场合的现实意义。因此我们可以通过全概率公式来求得。啰嗦一下:

定理 设试验E的样本空间为S,A为E的事件,$B_{1},B_{2},...,B_{n}$为S的一个划分,且$P\left(B_{i}\right)>0(i=1,2,3,....n)$,则

$$ P\left(A\right)=P\left(A|B_{1}\right)P\left(B_{1}\right)+P\left(A|B_{2}\right)P\left(B_{2}\right)+ $$

$$ ...+P\left(A|B_{n}\right)P\left(B_{n}\right). $$

称为全概率公式.

比如,穿长裤概率: $P(Boy) \times P(Pants|Boy) + U \times P(Girl) \times P(Pants|Girl)$。

既然提到了全概率公式,为了进一步理解贝叶斯公式,这里给出另一种贝叶斯公式的写法:

$$ P\left(B_{i}|A \right )=\frac{P\left(A|B_{i}\right)P\left(B_{i} \right )}{P\left(A \right )} $$

$$ =\frac{P\left(A|B_{i} \right )P\left(B_{i} \right )}{\sum_{j=1}^{n}P\left(A|B_{j} \right )P\left(B_{j} \right )},i=1,2,...,n. $$

上式中,样本空间$\Omega $中的一个完备事件群$\left\{B_{1},B_{2},...,B_{n}\right\}$,设$A$为$\Omega $中的一个事件,且$P\left(B_{i}\right)>0,i=1,2,3,....,n,P\left(A\right)>0$。推敲一下这个公式的意义:从形式上看这个公式不过是条件概率定义与全概率公式的简单推论。但是之所以著名的原因在于它的哲学意义。先看$P\left(B_{1}\right),P\left(B_{2}\right),...,P\left(B_{n} \right )$,这是在没有进一步信息(不知道$A$发生)时,人们对事件$B_{1},B_{2},...,B_{n}$发生可能性大小的认识(先验信息),在有了新信息(知道A发生)后,人们对事件$B_{1},B_{2},...,B_{n}$发生可能性大小新的认识体现在$P\left(B_{1}|A \right ),P\left(B_{2}|A \right ),...,P\left(B_{n}|A \right ).$

如果我们把事件A看成“结果”,把诸事件$B_{1},B_{2},...,B_{n}$看成导致这一结果的可能“原因”,则可以形象地把全概率公式看成由“原因”推“结果”。还是举那个例子,事件$A$——穿长裤,事件$B_{1}$——女生,事件$B_{2}$——男生,则$P\left(A\right)=P\left(A|B_{1}\right)P\left(B_{1}\right)+P\left(A|B_{2} \right )P\left(B_{2} \right )$,这里男生女生就是穿裤子这个“结果”的“原因”。而贝叶斯公式正好相反,其作用在于由“结果”推“原因”。现在有了结果A,在导致A发生的众多原因中,到底 是哪个原因导致了$A$发生(或者说:到底是哪个原因导致$A$发生的可能性最大)?如果这里理解有点障碍,可以看一下我在 机器学习|朴素贝叶斯算法(二)-用sklearn实践贝叶斯中详细讨论过的概率,似然,后验概率的关系。

好了,关于朴素贝叶斯算法目前只学习了这么多,之后进行实践操作的时候还会再补充,希望能有所收获╰( ̄ω ̄o)

上一篇:加入域时出现以下错误:找不到网络路径


下一篇:Python3入门机器学习 - Jupyter Notebook篇