朴素贝叶斯分类器

来源:互联网 发布:淘宝我的空间怎么设置 编辑:程序博客网 时间:2024/06/02 02:15

假设有N种可能的类别标记,记为 现有一个样本x给定其各个属性的取值,d为x所包含的属性的数目,若将x归为第c类的第k个属性,则有

                                                (1)

然后根据计算每个属性的概率,取最大的概率值作为x属于的c类的值。朴素贝叶斯分类器的最基本最核心的思想是“假设已有样本中各个属性之间独立”,由此有:

       (2)

又因为p(x)都是相同的,所以贝叶斯判定准则为

                                       (3)

即判定准则取最大时x属于的类别 ;

       估计类的先验概率P(c)的计算是基于训练集D的,并为每个属性估计条件概率 。

       令 表示训练集D种c类样本的集合,若有充足的独立同分布样本,则有

                                                        (4)

对于离散属性而言,令表示中在第i个属性上的取值的样本集合,则有

      (5)

对于连续属性考虑概率密度函数,假定,其中利用极大似然估计对参数进行计算有:

                                       (6)

所以:

    (7)

       同时是一个属性的连乘过程,对于第i个属性可能会存在在c类中没有出现过,但是将含有i个属性的样本x放入c的概率计算为0显然是不合理的,所以可进行“平滑处理”,常用的方法为“拉普拉斯修正”,具体来说,令N表示训练集D中可能含有的类别数(c的个数), 表示第i个属性的取值数,则(4)(5)修正如下:

     (8)

    (9)

实例

 数据集如下:

         从该数据集计算得到的先验概率以及每个离散属性的类条件概率、连续属性的类条件概率分布的参数(样本均值和方差)如下:

先验概率:P(Yes)=0.3;P(No)=0.7

P(有房=是|No) = 3/7

P(有房=否|No) = 4/7

P(有房=是|Yes) = 0

P(有房=否|Yes) = 1

P(婚姻状况=单身|No) = 2/7

P(婚姻状况=离婚|No) = 1/7

P(婚姻状况=已婚|No) = 4/7

P(婚姻状况=单身|Yes) = 2/3

P(婚姻状况=离婚|Yes) = 1/3

P(婚姻状况=已婚|Yes) = 0

年收入:

如果类=No:样本均值=110;样本方差=2975

如果类=Yes:样本均值=90;样本方差=25

现有新样本:

X={有房=否,婚姻状况=已婚,年收入=120K},通过计算确定是否存在拖欠贷款的行为:

所以p(年收入=120k|NO)
p(年收入=120k |YES)= 

同时P(婚姻状况=已婚|Yes) = 0,计算时会存在乘的现象,主要是因为样本不够大,此时便可采用“拉普拉斯修正”进行平滑处理。

所以对于P(婚姻状况=已婚|Yes) 来说:

:表示在YES中婚姻状况为已婚的人数=0;

  :表示婚姻状况可能的取值数=2(yes or no)

:yes类中包含的样本数=3

所以根据拉普拉斯修正有:P(婚姻状况=已婚|Yes)

 

所以:

P(No)*P(有房=否|No)*P(婚姻状况=已婚|No)*P(年收=120K|No)=0.7*4/7*4/7*0.684=0.156

P(Yes)*P(有房=否|Yes)*P(婚姻状况=已婚|Yes)*P(年收入=120K|Yes)=0.3*1*0.2*1=0.06

 

因为0.156>0.06,故认为该样本属于NO,即没有拖欠贷款。