使用朴素贝叶斯对垃圾邮件分类_朴素贝叶斯分类原理

朴素贝叶斯主要用于文本分类,在讲朴素贝叶斯分类原理之前,需要先了解分类问题的定义和贝叶斯公式。

一. 分类问题的定义

已知集合C={y_1, y_2, ..., y_n}和集合I={x_1, x_2, ..., x_m},确定映射规则y=f(x),使得任意的x_i属于I,有且仅有一个y_j属于C使得y_j=f(x_i)成立。其中

  1. C叫做类别集合,集合C中的每一个元素是一个类别
  2. I叫做项集合,每一个元素是一个待分类的项
  3. f叫做分类器,分类算法的任务就是构造分类器f

二. 贝叶斯公式

朴素贝叶斯分类是基于贝叶斯公式的,表述如下

5676696565b8309707c017f0fb75e0ba.png

这个公式的证明也比较简单,由于

771691b240f663d8d55e6d7fa464befb.png

那么,联立两式消去P(AB),就得到了

43e5c7de40513af7785793b942ca8c3d.png

这样,贝叶斯公式为我们打通了从P(A|B)到P(B|A)的通路。

三. 贝叶斯分类原理

朴素贝叶斯分类的原理是这样的:对于给定的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大就认为此待分类项属于哪个类别

朴素贝叶斯分类的主要步骤描述如下

  1. 设x={a_1, a_2, ..., a_m}为一个待分类项,其中a_i为x的一个特征属性,一共有m个属性
  2. 类别集合为C={y_1, y_2, ..., y_n}
  3. 分别计算P(y_1|x),P(y_2|x),...,P(y_n|x)
  4. 如果P(y_k|x)=max{P(y_1|x),P(y_2|x),...,P(y_n|x)},则待分类项x就属于类别y_k

这里面最核心的问题就是第3步,如何求这些条件概率。可以通过如下方法可以求出

1.找到一个已知分类的待分类项集合,这个集合叫做训练样本集

2.统计各个类别下各个特征属性的条件概率估计。即得到如下条件概率值

c8924f54af7f9e7644ca1c61d0b5cdec.png

3.如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导

9262a66a6b811bff48033ca4bf594594.png

分母对所有类别来说为常数,只需考虑分子的最大值即可,又因为各特征属性是条件独立的,所以

231657884d82f00dd0a3903c2631b73e.png

通过这种方式,我们就得到P(y_1|x),P(y_2|x),...,P(y_n|x)的值,进一步完成基于朴素贝叶斯的分类任务。

四. 细节的处理

在上面第2步需要统计计算P(a|y)的值,根据特征的类型有不同的方法

若特征属性a为离散值,只要统计出训练样本中各个属性在每个类别中出现的频率即可用来估计P(a|y)的值。

若特征属性a为连续值,假设其值服从某个分布,例如高斯分布。只要计算出训练样本中类别中特征的均值和标准差,那么带入上式便可得到条件概率的估计值。比如特征属性为身高或体重等,就不是简单地统计出现次数来估计概率了,需要计算均值和标准差来估计。

另外如果遇到P(a|y)=0怎么办? 这是因为某个类别下某个特征属性没有出现,这种情况的出现会导致分类器的质量大大降低。为了解决这个问题,就引入了Laplace校准核心思想就是如果某个类别下某个特征属性没有出现,那么就让它的计数器加1,即让它出现一次。这样就避免了P(a|y)=0的局面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值