ML-4-朴素贝叶斯
在机器学习中如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$ 。