最近跟同事学习了下用朴素贝叶斯来做一个简单的广告识别的功能,对我学习过程做了下记录
什么是朴素贝叶斯
朴素贝叶斯定理是指当事件A与事件B相互独立时P(A|B)=P(B|A)*P(A)/P(B),这个公式表示事件B发生的情况下事件A发生的概率等于事件A发生的概率乘以事件B发生的情况下事件A发生的概率再除以事件B发生的概率,此处不对公式进行推导
贝叶斯决策
假设我们有一堆朋友圈数据,存在两类朋友圈内容,一类是广告,一类是非广告,他们的比例分别为P(ad),P(nor),我们去判断一条新增的朋友圈内容是广告还是非广告。
若P(xad)>P(xnor)那么就认为新出的朋友圈内容为广告
若P(xnor)<P(xad)那么就认为新出的朋友圈内容为非广告
这就是贝叶斯决策论的核心思想,那P(xad)与P(xnor)怎么计算呢,这里就需要朴素贝叶斯定理了
实现广告识别
一条朋友圈的内容里面存在多个词,我们用X表示x1,x2,x3…xn组成的向量,P(ad|x)表示新增朋友圈内容为广告的概率,P(nor|x)表示新增朋友圈内容不是广告的概率,那么
P(nor|x)=P(x|nor)*P(nor)/P(x)
P(ad|x)=P(x|ad)*P(ad)/P(x)
若P(nor|x)>P(ad|x)则可认为新增朋友圈内容非广告,若P(nor|x)<P(ad|x)则可认为新增朋友圈内容为广告
假设每个词都是条件独立的,
P(nor|x)=P(x1|nor)*P(x2|nor)*P(x3|nor)*…*P(xn|nor)*P(nor)/[P(x1)*…P(xn)]
同理
P(ad|x)=P(x1|ad)*P(x2|ad)*P(x3|ad)*…*P(xn|ad)*P(ad)/[P(x1)*…P(xn)]
那么我们只需要对比P(x1|nor


530

被折叠的 条评论
为什么被折叠?



