朴素贝叶斯分类算法:对贝叶斯公式的理解

Posted hahaxzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了朴素贝叶斯分类算法:对贝叶斯公式的理解相关的知识,希望对你有一定的参考价值。

为了完成自己的毕业论文,不得不接触这个朴素贝叶斯分类算法。。。真是惭愧啊(快毕业了才学这个。。。还初识)

哈哈,不过只要肯学什么时候都不会晚

 

要想完全理解这个算法,必须先去百度一下

原来朴素贝叶斯分类算法是借用到了贝叶斯定理,那什么是贝叶斯定理呢...不多BB,

先看一看什么是条件概率:P(A|B)=P(AB)/P(B)

其中P(A|B)指的是在B已经发生的情况下A发生的概率。而这个概率是由A和B同时发生的概率除以B发生的概率。点解???这是我第一次看到这个公式后的反应

当我看完这张图后,就差不多能理解了:A同B的交集就相当于是A和B同时发生的概率,即P(AB)

http://blog.csdn.net/csfreebird/article/details/25009545 看看这个哥们写的吧,我就不复制粘贴了

再来看看贝叶斯公式:P(A│B)=(P(B|A)P(A))/(P(B))

当然这个是可以从条件概率的公式推导而来,只要将原来的条件概率公式P(A|B)=P(AB)/P(B)中的P(AB)替换成P(B|A)P(A)就是我们”可爱“的贝叶斯公式了

咋一看这个公式,貌似没那么容易去理解:B发生情况下A发生的概率等于A发生下B发生的概率乘以A发生概率再除以B发生的概率,什么鬼。。。

当然,我又去百度了

https://www.zhihu.com/question/19725590/answer/32177811#  这个讲的挺好的

我自己对贝叶斯公式的理解:

A事件无条件发生的概率为P(A),在当B事件发生后,它会改变A事件发生的概率(即P(A)变成了P(A|B))。

那么为什么B的发生会影响到A事件发生的概率呢?A和B之间有一种怎么样的联系呢?

额...貌似A与B之间的联系其实是因为各自本质上的原因,就好像男人喜欢打球而女人喜欢逛街一样。

但是这个联系是有度量的,是能够用数字表达出来的,这个度量就是B发生后能够影响A发生的一个强度,嗯...再细说就是B发生后对A的发生所产生的影响的大小(影响力)。而这个度量就是P(B|A)(似然比率)

---------------------------------------------------举个栗子(直接复制粘贴...):----------------------------------------------------------

一机器在良好状态生产合格产品几率是90%,在故障状态生产合格产品几率是30%,机器良好的概率是75%,若一日第一件产品是合格品,那么此日机器良好的概率是多少。

 

这个例子中,P(A)就是机器良好的概率,P(B)就是第一件产品是合格品的概率。

那么上面我所说的B对A发生的影响的一个度量就能够解释成 ’第一件产品为合格品‘ 事件对 ’机器良好‘ 这个事件发生的概率的影响力就等于P(B|A)=90%。单从直观的数字上来看影响还是比较大的。

那么经过B影响后A发生的概率是多少呢:P(A|B)=?

先等等,我们再来看看B的发生概率是多少P(产品合格)=P(机器良好)*P(机器良好时产品合格率)+P(机器故障)*P(机器故障时产品合格率)=0.75*0.9+0.25*0.3=0.75

P(A)原来是等于75%,如果直接套公式的话:经过事件B的影响得到了 ’新的概率‘ P(A|B)=B对A发生的影响力*A无条件概率/B无条件概率=0.9

感觉自己好像摸到点门路了

显然,如果B对A发生的影响力越小的话,那么经过B影响后A发生的概率也会变小。所以这样理解应该是没有问题的

我们继续,继续个毛线...这个思路卡壳了,那我们换一个思路:

如果把贝叶斯公式这样看,经过B影响后的A的概率:P(A|B)=(P(B|A)/P(B))*P(A)

因为P(B|A)归根结底还是事件B发生的概率,只不过加上了一个条件罢了,

而在某一条件下B的发生概率除以B无条件的发生概率(P(B|A)/P(B)),可以理解为P(B|A)在P(B)中所占的比例。那么这一部分(P(B|A)/P(B))就可以理解为是对P(A)的一个指导、修正,所以是乘以P(A)

结合例子,B是可以在两种不同的状态下发生的,第一种状态是A(即机器良好),第二种状态是~A(即机器故障),所以我们用P(B|A)/P(B)去指导、修正P(A)从而得到了P(A|B)

如果我们想得到P(~A|B),就要用P(B|~A)/P(B)去指导、修正P(~A)

如果按照这样的思路,其中P(B|~A)=0.3,P(B)=0.75,P(~A)=0.25,

那么P(~A|B)=P(B|~A)/P(B)*P(~A)=0.3/0.75*0.25=0.1(这个好像直接套用了公式一样....)

嗯...这样理解,对我来说是行的通的。

 

以上是关于朴素贝叶斯分类算法:对贝叶斯公式的理解的主要内容,如果未能解决你的问题,请参考以下文章

朴素贝叶斯算法原理

算法朴素贝叶斯分类算法原理与实践

贝叶斯分类器(3)朴素贝叶斯分类器

朴素贝叶斯分类算法的sklearn实现

朴素贝叶斯(Naive Bayes)算法

朴素贝叶斯并不朴素