朴素贝叶斯分类器详解

文章首发于 朴素贝叶斯分类器详解 | 隐舍

分类问题定义

已知集合: C = { y 1 , y 2 , . . . , y n } C=\{y_1, y_2, ..., y_n\} C={y1,y2,...,yn} I = { x 1 , x 2 , . . . , x m } I=\{x_1, x_2, ..., x_m\} I={x1,x2,...,xm},确定映射规则 y = f ( x ) y=f(x) y=f(x), 使得任意 x i ∈ I x_i\in I xiI 有且仅有一个 y j ∈ C y_j\in C yjC使得 y j = f ( x i ) y_j=f(x_i) yj=f(xi)成立。

贝叶斯定理

条件概率: P ( A ∣ B ) P(A|B) P(AB)表示事件B发生的前提下事件A发生的概率——条件概率。计算方式: P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(AB)=P(B)P(AB)

贝叶斯定理定义如下:
P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A)=\frac{P(A|B)P(B)}{P(A)} P(BA)=P(A)P(AB)P(B)

朴素贝叶斯分类

定义如下:

  1. x = { a 1 , a 2 , . . . , a m } x=\{a_1, a_2, ..., a_m\} x={a1,a2,...,am}为一个待分类项, a i a_i ai x x x的一个特征属性。
  2. 有类别集合 C = { y 1 , y 2 , . . . , y n } C=\{y_1, y_2, ..., y_n\} C={y1,y2,...,yn}.
  3. 计算 P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , . . . , P ( y n ∣ x ) P(y_1|x), P(y_2|x), ..., P(y_n|x) P(y1x),P(y2x),...,P(ynx).
  4. 如果 P ( y k ∣ x ) = m a x { P ( y 1 ∣ x ) , P ( y 2 ∣ x ) , . . . , P ( y n ∣ x ) } P(y_k|x)=max\{P(y_1|x), P(y_2|x), ..., P(y_n|x)\} P(ykx)=max{P(y1x),P(y2x),...,P(ynx)}, 则 x ∈ y k x\in y_k xyk

主要过程在于如何计算第三步中的条件概率,如下:

  1. 找到一个已知分类的待分类项集合,此集合为训练集。
  2. 统计各个类别下各个特征属性的条件概率估计,即:
    P ( a 1 ∣ y 1 ) , P ( a 2 ∣ y 1 ) , … , P ( a m ∣ y 1 ) ; P ( a 1 ∣ y 2 ) , P ( a 2 ∣ y 2 ) , … , P ( a m ∣ y 2 ) ; … , P ( a 1 ∣ y n ) , P ( a 2 ∣ y n ) , … , P ( a m ∣ y n ) P\left(a_{1} | y_{1}\right), P\left(a_{2} | y_{1}\right), \ldots, P\left(a_{m} | y_{1}\right) ; P\left(a_{1} | y_{2}\right), P\left(a_{2} | y_{2}\right), \ldots, P\left(a_{m} | y_{2}\right) ; \ldots, P\left(a_{1} | y_{n}\right), P\left(a_{2} | y_{n}\right), \ldots, P\left(a_{m} | y_{n}\right) P(a1y1),P(a2y1),,P(amy1);P(a1y2),P(a2y2),,P(amy2);,P(a1yn),P(a2yn),,P(amyn)
  3. 如果各个特征属性是条件独立的,根据贝叶斯定理,可以进行以下推导:
    P ( y i ∣ x ) = P ( x ∣ y i ) P ( y i ) P ( x ) P\left(y_{i} | x\right)=\frac{P\left(x | y_{i}\right) P\left(y_{i}\right)}{P(x)} P(yix)=P(x)P(xyi)P(yi)
    因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:
    P ( x ∣ y i ) P ( y i ) = P ( a 1 ∣ y i ) P ( a 2 ∣ y i ) … P ( a m ∣ y i ) P ( y i ) = P ( y i ) ∏ j = 1 m P ( a j ∣ y i ) P\left(x | y_{i}\right) P\left(y_{i}\right)=P\left(a_{1} | y_{i}\right) P\left(a_{2} | y_{i}\right) \ldots P\left(a_{m} | y_{i}\right) P\left(y_{i}\right)=P\left(y_{i}\right) \prod_{j=1}^{m} P\left(a_{j} | y_{i}\right) P(xyi)P(yi)=P(a1yi)P(a2yi)P(amyi)P(yi)=P(yi)j=1mP(ajyi)

存在的问题

  1. 特征属性为离散值时可以直接统计计算,当属性特征为连续值时如何处理?
    当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。即:
    g ( x , η , σ ) = 1 2 π σ e − ( x − η ) 2 2 σ 2 g(x, \eta, \sigma)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-} \frac{(x-\eta)^{2}}{2 \sigma^{2}} g(x,η,σ)=2π σ1e2σ2(xη)2
    则条件概率为:
    P ( a k ∣ y i ) = g ( a k , η y i , σ y i ) P\left(a_{k} | y_{i}\right)=g\left(a_{k}, \eta_{y_{i}}, \sigma_{y_{i}}\right) P(akyi)=g(ak,ηyi,σyi)

  2. 当训练样本中某个类别没出现过某种特征, P ( a i ∣ y k ) = 0 P\left(a_i | y_k\right)=0 P(aiyk)=0
    解决这个问题的办法是给每个特征和类别的组合加上给定个数的虚假样本(“hallucinated” examples)。
    假设特征 a i a_i ai 的取值有 J J J个,并假设为每个 x i x_i xi 对应的概率增加 s s s个虚假样本,这样得到的估计称为平滑估计(smoothed estimate):
    P ^ ( X i = x i ∣ C = c k ) = P { X i = x i ∧ C = c k } + s P { C = c k } + s J \hat{P}\left(X_{i}=x_{i} | C=c_{k}\right)=\frac{P\left\{X_{i}=x_{i} \wedge C=c_{k}\right\}+s}{P\left\{C=c_{k}\right\}+s J} P^(Xi=xiC=ck)=P{C=ck}+sJP{Xi=xiC=ck}+s
    特别的,当 s = 1 s=1 s=1时,上述平滑称为拉普拉斯平滑(Laplace smoothing)。

  3. 为何假设属性之间条件独立?
    减少模型参数量,否则贝叶斯定理不成立。

算法参考: https://wizardforcel.gitbooks.io/dm-algo-top10/content/naive-bayes.html

关注作者

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值