概率基础
随机事件
指可能发生,也可能不发生的事件,例如:当我们抛硬币时,设出现正面为事件A,则事件A可能发生,也可能不发生。
样本空间
即我们进行随机试验时,所有可能结果构成的集合。通常使用S表示。
概率
用来反映一个随机事件出现的可能性大小,通常使用P(A)来表示事件A的概率。
也可以从面积角度表示:
联合概率
指多个事件同时发生的概率,例如:P(AB)表示事件A与事件B的联合概率。
条件概率
指在事件A发生的前提下,事件B发生的概率,使用P(B|A)表示。
关于条件概率,有以下一个重要的定义:
独立性
独立性现象
有时候,事件之间可能并不存在相互影响的情况,例如:我们考察两个学生的逃课情况,设事件A为第一个学生逃课,事件B为第二个学生逃课,则样本空间S为:
第一个学生 | 第二个学生 |
---|---|
逃课 | 逃课 |
逃课 | 不逃课 |
不逃课 | 逃课 |
不逃课 | 逃课 |
我们可以计算事件概率:
P(A) = 0.5
P(B) = 0.5
P(B|A) = 0.5
P(A|B) = 0.5
由此可知:
P(A) = P(A|B)
P(B) = P(B|A)
可见,事件A与B没有相互造成影响,这也很容易理解,因为两个学生没有关系,则一个学生是否逃课,对另外一个学生没有任何影响。
独立性定义
如果两事件A,B满足:
则称A与B相互独立。同时,又存在:
因此,当两事件A,B独立时:
这也表明,当两个事件独立时,一个事件发生与否,对另外一个事件完全没有任何影响。
全概率公式
设试验E的样本空间为S,A为E的事件,B₁,B₂,……,Bn为S的一个划分(任意两个事件交集为空,且事件并集为整个样本空间S),且P(Bi) > 0 (i=1,2,……,n),则:
称为全概率公式。
有时候,P(A)可能不易求出,但是,我们可以在S上寻找一个划分Bi(i=1,2,……,n),并且Bi与P(A|Bi)的概率容易获取,这样,我们就可以使用全概率公式来求解P(A)。
贝叶斯公式
公式定义
设试验E的样本空间为S,A为E的事件,B₁,B₂,……,Bn为S的一个划分,且P(A) > 0,P(Bi) > 0 (i=1,2,……,n),则:
核心思维
贝叶斯公式的核心思维就是将求解P(B|A)的概率转换成求解P(A|B)的概率。当求解P(B|A)的难度较大,但求解P(A|B)比较容易时,我们就可以考虑使用贝叶斯公式进行转换。
相关示例
对以往数据分析结果表明,当机器调整得良好时,产品的合格率为98%,而当机器发生某种故障时,其合格率为55%。每天早上机器开动时,机器调整良好的概率为95%。试求:已知某天早上第一件产品是合格品时,机器调整良好的概率是多少?
先验概率与后验概率
由以往的数据分析而得到的概率,称为先验概率。
当得到某些信息后,在先验概率的基础上进行修正,从而得到的概率,称为后验概率。
朴素贝叶斯算法
朴素贝叶斯算法是基于概率的分类算法,之所以称为‘朴素’,是因为其假设特征之间是独立的,该算法设计比较简单,实际上使用的就是全概率公式与贝叶斯公式。朴素贝叶斯算法在文本场景中效果很好,例如:垃圾邮件过滤,新闻分类,情感分析等。
算法原理
朴素贝叶斯是基于概率的分类算法,因此,想要预测未知样本X所属的类别,只需要计算X属于每个类别(y)的概率是多少,预测结果就是概率最大的那个类别。
假设X含有n个特征,即我们要计算:
然而,以上的概率我们并不容易求解,不过根据贝叶斯公式,我们可以进行如下转换:
因为朴素贝叶斯算法的前提假设为:各个特征之间都是独立的,因此有:
因此,将(2)式代入(1)式,可得:
我们发现,无论是计算样本属于哪个类别的概率,分母部分都是不变的,因此,比较概率的大小,只需要比较分子部分就可以了。
故算法最终预测的类别,就是能够使得分子部分最大的那个类别,即:
从公式中,我们容易发现,若要预测样本的类别,只需要求解P(y)与P(xi|y)即可。而这两个概率,都可以从训练集中获取。
平滑改进
因为在计算时,是各个概率的乘积,因此,一旦有一个概率为0,即使其他的概率值较大,也一律会得到0值。这会严重影响预测的准确性,为了避免这种情况的发生,我们在计算概率时,采用平滑改进。
其中,k为特征xi可能的取值数,α(α ≥ 0)称为平滑系数,当α = 1时,称为拉普拉斯平滑(Laplace smoothing),当α < 1 时,称为Lidstone smoothing平滑。
算法优点
相对于其他算法,朴素贝叶斯算法具有如下优势:
- 即使训练集数据较少,也能够实现预测,并且效果不错。
- 算法的训练速度非常快。
这是因为,算法假设特征之间是独立的,这意味着每个特征可以单独当成一维分布而进行评估,无需考虑与其他特征之间的关联性。反之,如果特征之间不独立,则为了获得较准确的数据分布,就需要更多的训练样本。假设训练集中含有N个特征,每个特征需要M个样本来训练,则总共需要的样本数为各自样本之间的笛卡尔积,即Mⁿ,这在N很大时,训练会非常缓慢,然而,如果特征之间独立,对于每个特征,就可以单独进行考虑,总共只需要N*M个样本就可以正常训练。