朴素贝叶斯:虽然天真但是有用

Naive

在很久很久以前,早在电子邮件还是最重要的通讯工具的时代,为了识别垃圾邮件,朴素贝叶斯算法就已经大行其道了.它因为过于天真的条件独立性假设,一直被人诟病愚蠢,但也正式这个假设,使它适用性强且高效.

现实世界中,推理模型,不在于它有多强或是有多复杂,用的恰到好处恰如其分才是关键.比如在一些简单的文本任务上,使用Bert之类的深度模型总有杀鸡用牛刀之嫌,因为它太大太慢太没有发挥空间.而在那些标注数据很少,含义不是太深,又希望能够快速推理,模型快速迭代的场景,朴素贝叶斯算法用起来不要太爽.

朴素贝叶斯用于计算一个特征集合的样本属于某个分类的后验概率,然后取最大后验概率的那个分类作为推理结果.
给定一个n维的特征向量([x_1, x_2, x_3,...,x_n]),和一个类别向量y ,那么根据贝叶斯定理,有以下关系:
P(y|x_1,x_2,...,x_n) = \frac{P(x_1,x_2,...,x_n|y)*P(y)}{P(x_1,x_2,...,x_n)}
很明显,想要计算P(x_1,x_2,...,x_n|y)是十分困难的,于是朴素贝叶斯给出了一个很蠢的假设,即当y确定时,所有的特征之间是独立的(实际上对于大多数场景,这个假设并不成立..这也是太天真的原因)...于是乎,上面的公式就可以化简为:
\begin{align} P(y|x_1,x_2,...,x_n) =& \frac{P(x_1,x_2,...,x_n|y)*P(y)}{P(x_1,x_2,...,x_n)} \\ =& \frac{\prod_{i=1}^nP(x_i|y)*P(y)}{P(x_1,x_2,...,x_n)} \end{align}
在给定输入的情况下[x_1, x_2, x_3,...,x_n]是一个常量, 于是我们可以忽略它从而得到这样一个分类规则:
P(y|x_1,x_2,...,x_n) \propto \prod_{i=1}^nP(x_i|y)*P(y) \\ \Downarrow \\ y' = argmax_y \prod_{i=1}^n P(x_i|y)*P(y)
当然,对于给定的训练数据,P(y)也是个定值,即先验概率...可以用类y的样本在整个训练集中所占的比率估计出来.而P(x_i|y)可以通过极大似然估计的方式得到.

各种朴素贝叶斯方法的主要区别在于它们对类条件概率密度分布 P(x_i|y)做了不同的假设。

下面,就让我们来看看朴素贝叶斯P(x_i|y)的几种常见假设:伯努利分布朴素贝叶斯/多项分布朴素贝叶斯/高斯分布朴素贝叶斯.

伯努利分布朴素贝叶斯

这个从小学就开始接触的分类大概是国人最熟悉不过的分布了,很简单,就是一个两点分布,咱把它门记作x \in [0,1],那么如果x=1的概率为p,x=0的概率就是1-p, 于是属于某个类的概率便是:
f(x) = p^x(1-p)^{1-x}
以上是针对一个变量的情形,显然,在朴素贝叶斯中,对应的是多变量的情形,于是采用的是多变量的伯努利分布(此处注意与多维伯努利的区别,它并没有\sum_i^n x_i=1的约束),我们可以把它理解为对n个条件独立事件进行了一次伯努力试验,于是概率分布可以表示为连乘积的形式:
P(x_1,x_2,...,x_n|y) = \prod_{i=1}^n [ p^{x_i}x_i+(1-p^{x_i})(1-x_i)]
然后,再使用极大似然估计法,很容易得出某个特征出现的概率是P(x_i|y)=\frac{N_{x_i,y}}{N_y} ,不出现就是 1-P(x_i|y) . (N_y是所有y类样本数,而N_{x_i,y}是含有特征x_i 的y类样本数).

多项分布朴素贝叶斯

多项分布朴素贝叶斯不再将特征集合中的所有特征都进行一次伯努利试验,而是将所有出现的特征看作是一次试验,出现相应特征的概率服从多项分布,即假设n种特征每种出现的概率为p_{x_i}, 并且特征出现与否是互斥的,满足\sum_{i=1}^n p_{x_i}=1,于是,对于一个出现k个特征的样本,相当于做了k次试验,相应特征出现了a次,那么显然,使用极大似然估计,可以得出
P(x_i|y) = \frac{N_{x_i,y}}{Nx_i}
其中,N_{x_i} 是特征x_i 出现的总次数,N_{x_i,y}是特征x_iy类中出现的总次数.

很容易发现,与假设为伯努利分布不同,该方式只考虑了出现的特征,对于一个新的样本,并不会因为没有出现某种特征而降低后验概率.

高斯分布朴素贝叶斯

高斯分布实际就是将前面的多项分布离散的概率分布改为了连续的形式,假设每个特征x出现的概率服从\mathcal N(\mu,\sigma^2), 于是
P(x_i|y) = \frac{1}{\sqrt{2\pi}\sigma}e^\frac{(x_i-\mu)^2}{2\sigma^2}
相当于只要求出\mu\sigma 即可,通过最大似然估计法容易得出
\mu = \frac {\sum {x_i|y}}{N_{y_i}} , \\ \sigma^2 = \sum (x_i|y - \mu)/N_{x_i,y}
y分类下, 特征x_i 的均值和方差.

总结

相比于其他更复杂的方法,朴素贝叶斯学习器和分类器非常快。 分类条件分布的解耦意味着可以独立单独地把每个特征视为一维分布来估计。这样反过来有助于缓解维度灾难带来的问题。

另一方面,尽管朴素贝叶斯被认为是一种相当不错的分类器,但却不是好的估计器,所以不能太过于重视从其计算的属于某一类的概率。

尽管朴素贝叶斯的假设过于天真,但实际在很多情况下,朴素贝叶斯工作得很好,特别是文档分类和垃圾邮件过滤。这些工作都要求一个小的训练集来估计必需参数,朴素贝叶斯虽然天真但是有用~

Naive

参考资料

An introduction to machine learning with scikit-learn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335