朴素和半朴素贝叶斯

引入

贝叶斯决策论是概率框架下实施决策的基本方法,它基于概率和误判误差的最小化来进行判别,是一种分类问题的解法。

这里写图片描述

原理

首先,将数据及其属性记为x,对于多分类任务,其可能的取值有N种,设为{ c1,c2,c3.....cN c 1 , c 2 , c 3 . . . . . c N },统称为c。数据x的正确分类记为 cx c x 。于是将算法的正确率记为:

Ptrue=P(cx|x)=P(c|x) P t r u e = ∑ P ( c x | x ) = P ( c | x ) ​

若算法可以对x进行正确分类,则记误判误差为0。若错误分类,误差记为1.

于是,算法的总误差R可以表示为:

R(c|x)=1P(c|x) R ( c | x ) = 1 − P ( c | x )

我们的目标是最小化 R(c|x) R ( c | x ) ,该目标可以转化为最大化P(c|x)。由逆概率公式可知:

P(c|x)=P(c)P(x|c)P(x) P ( c | x ) = P ( c ) ∗ P ( x | c ) P ( x )

成功利用逆概率公式将未知概率转化为我们已知的概率。

由逆概率公式知,判定x为类别i(记为 ci c i )的概率为,:

P(ci|x)=P(ci)P(x|ci)P(x) P ( c i | x ) = P ( c i ) ∗ P ( x | c i ) P ( x )

我们只需要求出x为任意类别的概率,若最大概率取在类别j处,便可以判定x为类别 cj c j

由于在计算P( ci c i |x)时,需要计算的量有三个:P( ci c i ),P(x| ci c i ),P(x)。

  1. 由于判别任务是对于所有数据而言的,所以P(x)的概率对于任何样本都是一样的,可以忽略不计
  2. P( ci c i )代表类别 ci c i 在总体中所占的比例,可以利用
    p(ci)=|Di||D| p ( c i ) = | D i | | D |
    计算得到,其中 Di D i 代表类别为 ci c i 的样本集合,D为总样本集合。
  3. 难点出现在计算P(x| ci c i )上面,该如何计算出现某一个类别 ci c i 中出现数据x的概率。

显然,由于x非常多,例如一个具有100个二值属性的x可以的取值有 2100 2 100 种,在训练集中不可能取得x的所有取值的样本,所以我们必须要估计P(x| ci c i )的值。

朴素贝叶斯

由于x实际上是由n个属性组成的,记为{ x1,x2......xn x 1 , x 2 . . . . . . x n }。朴素贝叶斯方法有一个重要假设:

对于已知的类别,假设其每个属性之间是独立的。

若假设成立,便可以有公式:

P(x|ci)=j=1nP(xj|ci) P ( x | c i ) = ∏ j = 1 n P ( x j | c i )

也就是说,有 ci c i 类别中每个属性出现的概率即可求得整体的概率。

离散属性任务

对于离散属性的任务而言,可以直接用频率代替概率,即:

P(xj|ci)=|Dci,xj||Dci| P ( x j | c i ) = | D c i , x j | | D c i |

由此整个预测所需要的条件已满足。

连续属性任务

显然,不可能对连续属性任务套用公式 P(xj|ci)=|Dci,xj||Dci| P ( x j | c i ) = | D c i , x j | | D c i | ,因为 xj x j 可以取任何值,无法通过频率替代概率。

由此,我们应该先假定该属性具有某种确定的概率分布形式,在基于训练样本对概率分布的参数进行估计,这里的估计方法,常用最大似然法

极大似然估计是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

以下通过一个例子说明极大似然法如何估计参数(该图来自于北大信科罗定生老师):

这里写图片描述

于是,我们可以利用极大似然法来估算出连续型属性所遵循的分布,就可以利用属性在某值的概率密度替代离散属性中的概率

例如,我们假设某个连续属性 xj x j 遵循正态分布 N(μ,σ2) N ( μ , σ 2 ) ,对 ci c i 类别的所有样本的 xj x j 属性值进行最大似然估计,结果得到 μ=1,σ=1 μ = 1 , σ = 1 ,于是该属性遵循分布:

xjN(1,1)=12πe((x1)22) x j 分 布 : N ( 1 , 1 ) = 1 2 π e − ( ( x − 1 ) 2 2 )

若某个样本x的属性 xj=1 x j = 1 ,便可以将该值带入上式算出概率密度。

由此整个预测所需要的条件已满足。

拉普拉斯修正

在离散属性任务中,由于是直接将频率当成概率,所以若一个属性未出现,则计算出的概率始终0,为了避免这种错误,可以使用拉普拉斯修正使之平滑:

p(ci)=|Di||D|p(ci)=|Di|+1|D|+N p ( c i ) = | D i | | D | 变 成 p ( c i ) = | D i | + 1 | D | + N

P(xj|ci)=|Dci,xj||Dci|P(xj|ci)=|Dci,xj|+1|Dci|+Nj P ( x j | c i ) = | D c i , x j | | D c i | 变 成 P ( x j | c i ) = | D c i , x j | + 1 | D c i | + N j

其中N为类别个数, Nj N j 为第j个属性的可能取值的数目。

拉普拉斯修正实际上是假设了属性值和类别的均匀分布,但是当样本数目较大时,该影响会被消除。

半朴素贝叶斯

朴素贝叶斯的假设过于强势,在实际模型中有时并不满足,因为样本的很多属性可能存在关联关系,并不独立。例如一个病人有发烧,虚汗……等等多种症状,要判断他的病症类型,但是可能发烧会引起虚汗,这两个属性是相关的。

为了解决这个问题,科学家们又在朴素贝叶斯上引入了一些限制条件:允许一些属性之间拥有依赖关系,由此形成了半朴素贝叶斯。

根据不同模型允许存在的依赖关系的不同,有以下几种常用的半朴素贝叶斯模型。

这里写图片描述

上图中NB为朴素贝叶斯的依赖关系,可以看见该模型中不同属性 x1,x2,x3...... x 1 , x 2 , x 3 . . . . . . 相互独立。

SPODE模型

SPODE模型假设所有的属性都依赖一个父类属性——称为“超父”,在上图SPODE中,通过一些模型选择方法来来确定超父属性。

确定超父属性后,概率公式变为了:

P(ci|x)P(ci)j=1nP(xj|ci,x) P ( c i | x ) ⟹ 正 比 于 P ( c i ) ∗ ∏ j = 1 n P ( x j | c i , x 父 )

其中 x x 父 即为超父属性。

AODE模型

AODE模型同样假设所有的属性都依赖一个“超父”属性。但是AODE模型尝试将每个元素作为超父属性,建立SPODE模型,然后从中筛选较好的属性。将这些所有较好的属性集成起来作为最终的模型。

概率公式为:

P(ci|x)xjP(c,xj)j=1nP(xi|ci,xj) P ( c i | x ) ⟹ 正 比 于 ∑ 所 有 被 选 中 的 x j 属 性 P ( c , x j ) ∗ ∏ j = 1 n P ( x i | c i , x j )

那么哪些属性被选中呢?要选择有足够数据支撑的数据,即:

|Dxj|>=m | D x j | >= m

其中m为确认的阈值。

TAN模型

TAN模型也是假设每个属性只依赖一个属性,但是并不是统一的超父。相反,TAN将N个属性看成一个无向完全图,然后设定每条边的权重为两条边的相关性,计算公式如下:

I(xi,xj|y)=cP(xi,xj|c)logP(xi,xj|c)P(xi|c)P(xj|c) I ( x i , x j | y ) = ∑ c P ( x i , x j | c ) ∗ l o g P ( x i , x j | c ) P ( x i | c ) P ( x j | c )

观察该式可知:

  • xi,xj x i , x j 无关,即 P(xi,xj|c)=P(xi|c)P(xj|c) P ( x i , x j | c ) = P ( x i | c ) ∗ P ( x j | c ) ,则该式值为0
  • xi,xj x i , x j 相关,则 P(xi,xj|c)>P(xi|c)P(xj|c) P ( x i , x j | c ) > P ( x i | c ) ∗ P ( x j | c ) ,则该式为正值。

建立无向完全图之后,通过最大生成树算法,挑选根变量,并将边设置为有向。

建立依赖图之后,就可以和AODE中一样计算概率,只不过每个属性有自己独特的父类而已,其余皆相同。

以上三个模型中 P(xj|ci,x)P(ci,xj) P ( x j | c i , x 父 ) , P ( c i , x j ) 也可以通过将频率看做概率的方法计算得到:

P(ci,xj)=Dci,cj+1|D|+NNi P ( c i , x j ) = D c i , c j + 1 | D | + N ∗ N i

P(xj|ci,x)=|Dci,xj,x|+1|Dci,x|+Nj P ( x j | c i , x 父 ) = | D c i , x j , x 父 | + 1 | D c i , x 父 | + N j

查看更多

所有的文章都会在我的博客和我的知乎专栏同步进行更新,欢迎阅读

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值