贝叶斯分类器

时间:2020-12-01 10:08:31

原理:
通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

贝叶斯公式:
贝叶斯分类器

案例:
挑战者B不知道原垄断者A是属于高阻挠成本类型还是低阻挠成本类型,但B知道,如果A属于高阻挠成本类型,那么B进入市场时A进行阻挠的概率为20%(此时A为了保持垄断带来的高利润,不计成本地拼命阻挠);如果A属于低阻挠成本类型,那B进入市场时,A阻挠的概率为100%。
博弈开始时,B认为A属于高阻挠成本企业的概率为70%,因此,B估计自己进入市场时,受到A阻挠的概率为:0.7*0.2+0.3*1=0.44
0.44是在B给定A所属类型的先验概率下,A可能采取阻挠行为的概率。
当B进入市场时,A确实进行阻挠。使用贝叶斯法则,根据阻挠这一可观察到的行为,B认为A属于高阻挠成本企业的概率变成:
A属于高成本企业的概率=0.7(A属于高成本企业的先验概率)*0.2(高成本企业对新进入市场的企业进行阻挠的概率)/0.44=0.32
根据这一新的概率,B估计自己进入市场时,受到A阻挠的概率为:0.32*0.2+0.68*1=0.744
如果B再一次进入市场时,A又进行了阻挠。使用贝叶斯法则,根据再次阻挠这一可观察到的行为。B认为A属于高阻挠成本企业的概率变为:
A属于高阻挠成本企业的概率=0.32(A属于高阻挠成本企业的先验概率)*0.2(高阻挠成本企业对进入市场的企业进行阻挠的概率)/0.744=0.086
这样,根据A一次又一次的阻挠行为,B对A所属类型的判断逐步变化,越来越倾向于把A判断为低阻挠成本的企业了。

朴素贝叶斯(Navie Bayes)
针对特征向量x为离散值的问题。
贝叶斯分类器
朴素贝叶斯分类的流程如下图所示:
贝叶斯分类器
图中的“对每个特征属性计算所有划分的条件概率”实际上说的是“每个类别条件下各特征属性的划分频率”,即P(X|Yi)

可以看到,整个朴素贝叶斯分为3个阶段:
1、准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本 。这个阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上有特征属性、特征属性划分以及训练样本质量决定。
2、分类器训练阶段,这个阶段的任务是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。其输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,可由程序自动完成。
3、应用阶段。这个阶段的任务是使用分类器对分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,有程序完成。

拉普拉斯平滑
为解决0概率问题。
贝叶斯分类器

案例:检测SNS社区中不真实账号
将SNS社区中所有账号在真实账号和不真实账号两个类别上进行分类。
首先设C=0表示真实账号,C=1表示不真实账号。
1、确定特征属性及划分
我们选择三个特征属性:a1:日志数量/注册天数,a2:好友数量/注册天数,a3:是否使用真实头像,在SNS社区中这三项都可以直接从数据库里得到或计算出来。
下面给出划分:
a1:{a<=0.05,0.05< a<0.2, a>=0.2},a2:{a<=0.1, 0.1< a<0.8, a>=0.8} , a3:{a=0(不是),a=1(是)}

2、获取训练样本
这里使用运维人员曾经人工检测过的1万个账号作为训练样本。
3、计算训练样本中每个类别的频率
用训练样本中真实账号和不真实账号数量分别除以一万,得:
P(C=0)=8900/10000=0.89
P(C=1)=1100/10000=0.11
4、计算每个类别条件下各特征属性划分频率
贝叶斯分类器
5、使用分类器进行鉴别
下面我们使用上面训练得到的分类器鉴别一个账号,这个账号使用非真实头像,日志数量与注册天数之比为0.1,好友数与注册天数之比为0.2.

P(C=0)P(x|C=0)=P(C=0)P(0.05< a1<0.2|C=0)P(0.1< a2<0.8|C=0)P(a3=0|C=0)=0.89*0.5*0.7*0.2=0.0623
P(C=1)P(x|C=1)=P(C=1)P(0.05< a1<0.2|C=1)P(0.1< a2<0.8|C=1)P(a3=0|C=1)=0.11*0.1*0.2*0.9=0.00198
可以看到,虽然这个用户没有使用真实头像,但通过分类器的鉴别,更倾向于将此账号归入真实账号类别。这个例子也展示了当特征属性充分多时,朴素贝叶斯分类对个别属性的抗干扰性。

参考:
NB算法——作者:T2噬菌体