在机器学习中如KNN、逻辑回归、决策树等模型都是判别方法,也就是直接学习出特征输出 $\ Y$ 和特征 $\ X$ 之间的关系(决策函数 $Y=f(X)$ 或者条件分布 $P(Y|X)$。
但朴素贝叶斯是生成方法,它直接找出特征输出 $\ Y$ 和特征 $\ X$ 的联合分布$P(X,Y)$,进而通过 $P(Y\mid X)={\frac{P(X,Y)}{P(X)}}$ 计算得出结果判定。

核心思想

通过考虑特征概率来预测分类:即对于给出的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。

一般挑西瓜时通常要「敲一敲」,听听声音,是清脆声、浊响声、还是沉闷声。所以,我们先简单点考虑这个问题,只用敲击的声音来辨别西瓜的好坏。根据经验,敲击声「清脆」说明西瓜还不够熟,敲击声「沉闷」说明西瓜成熟度好,更甜更好吃。
所以,坏西瓜的敲击声是「清脆」的概率更大,好西瓜的敲击声是「沉闷」的概率更大。当然这并不绝对——我们千挑万选地「沉闷」瓜也可能并没熟,这就是噪声了。当然,在实际生活中,除了敲击声,我们还有其他可能特征来帮助判断,例如色泽、跟蒂、品类等

数学公式

先验概率与后验概率

  • 先验概率:事件发生前的预判概率
  • 后验概率:事件发生后求的反向条件概率。
  • 条件概率:一个事件发生后另一个事件发生的概率。

贝叶斯公式

朴素贝叶斯算法; 贝叶斯公式;

  • P(A)&P(B)都是先验概率
  • P(B|A)是条件概率,一般是通过历史数据统计得到。
  • 我们的目标是P(A|B),是一个后验概率

条件独立假设

所谓「朴素」,是假定所有输入事件之间是相互独立

因为相互独立,因此

朴素贝叶斯算法; 条件独立假设与朴素贝叶斯;

编程公式

其他贝叶斯

多项式vs伯努利朴素贝叶斯

  • 如果直接以单词的频次参与统计计算,那就是多项式朴素贝叶斯的形态。
  • 如果以是否出现(0和1)参与统计计算,就是伯努利朴素贝叶斯的形态。

两种贝叶斯

高斯贝叶斯

前面的贝叶斯一般只解决离散型,对于身高这种连续性。

传统方式是分段,比如高于185特征值为1;低于165特征值为2;中间为3……但这样划分具有很强的主观性

因此,不妨假设在$y_i$条件下,x服从高斯(正态)分布

如果身高是我们判定人性别(男/女)的特征之一,我们可以假设男性和女性的身高服从正态分布,通过样本计算出身高均值和方差,对应上图中公式就得到正态分布的密度函数。有了密度函数,遇到新的身高值就可以直接代入,算出密度函数的值。

平滑处理

why

使用朴素贝叶斯,有时候会面临零概率问题

比如:在文本分类的问题中,当「一个词语没有在训练样本中出现」时,这个词基于公式统计计算得到的条件概率为 $\ 0$ ,使用连乘计算文本出现概率时也为 $\ 0$ 。这是不合理的,不能因为一个事件没有观察到就武断的认为该事件的概率是 $\ 0$ 。

拉普拉斯平滑及依据