1 - 基础定理与定义

  • 条件概率公式:
    [ P(A|B)=dfrac{P(AB)}{P(B)} ]

  • 全概率公式:
    [ P(A)=sum_{j=1}^N P(AB_i)=sum_{j=1}^N P(B_i)P(A|B_i) ]

  • 贝叶斯公式:
    [ P(B_i|A)=dfrac{P(AB_i)}{P(A)}=dfrac{P(B_i)P(A|B_i)}{sum_{j=1}^N P(B_i)P(A|B_i)} ]

  • 概率加和规则:
    [ Pleft(X=x_iright)=sum_{j=1}^N Pleft(X=x_i,Y=y_jright) ]

    [ Pleft(Xright)=sum_Y Pleft(X,Yright) ]

  • 概率乘积规则:
    [ Pleft(X=x_i,Y=y_jright)=Pleft(Y=y_j|X=x_iright)Pleft(X=x_iright) ]

    [ Pleft(X,Yright)=Pleft(Y|Xright)Pleft(Xright) ]

  • 生成学习方法:

    利用训练数据学习(P(X|Y))(P(Y))的估计,得到联合概率分布:
    [ P(X,Y)=P(Y)P(X|Y) ]
    然后求得后验概率分布(P(Y|X)). 具体概率估计方法可以是极大似然估计或者贝叶斯估计。

2 - 模型简述

朴素贝叶斯((naive) (Bayes))是基于贝叶斯定理与特征条件独立假设的分类方法。

对于给定的训练数据集,首先基于条件独立假设,学习输入输出的联合概率分布;然后基于此模型,对给定的输入(x),利用贝叶斯定理,求出后验概率最大的输出类(y)

后验概率最大等价于(0-1)损失函数时的期望风险最小化。

作为典型的生成学习方法,朴素贝叶斯实现简单,学习和预测效率都很高,是一种常用模型。

以下主要介绍经典的多项式贝叶斯分类器

3 - 模型假设

  1. 训练集(P(X,Y))独立同分布产生

  2. 条件独立性假设。用于分类的特征,在类确定的条件下独立,即:
    [ begin{aligned} Pleft(X=x | Y=c_{k}right) &=Pleft(X^{(1)}=x^{(1)}, cdots, X^{(n)}=x^{(n)} | Y=c_{k}right) \ &=prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right) end{aligned} ]
    这是一个较强的假设。在对性能作出一些妥协的条件下,此假设使模型包含条件概率的数量大为减少,使模型的学习与预测大为简化,从而高效而易于实现。

    条件独立性假设也可视为最简单的有向概率图模型。

4 - 模型主要策略

  1. 极大似然估计
  2. 最大化后验概率

5 - 模型输入

训练集(T=left{left(x_{1}, y_{1}right),left(x_{2}, y_{2}right), cdots,left(x_{N}, y_{N}right)right})(x_iinmathcal{X} subseteq mathbf{R}^{n})(i=1,2,dots,N)(yinmathcal{Y}={c_1,c_2,dots,c_k})(|mathcal{Y}|=K)(x_{i}=left(x_{i}^{(1)}, x_{i}^{(2)}, cdots, x_{i}^{(n)}right)^{mathrm{T}})(x_{i}^{left(jright)})是第(i)个样本的第(j)个特征,(j=1,2,dots,n)(x_{i}^{left(jright)}in{a_{j1},a_{j2},dots,a_{jS_j}}),其中(a_{jl})是第(j)个特征的第(l)个取值,(l=1,2,dots,S_j).

另有实例(x).

6 - 模型推导

由假设可得
[ Pleft(X=x, Y=c_{k}right)=Pleft(X=x | Y=c_{k}right) Pleft(Y=c_{k}right)=Pleft(Y=c_{k} | X=xright) P(X=x) ]
取后两个等式,处理变换得:
[ begin{aligned} Pleft(Y=c_{k} | X=xright) &=frac{Pleft(X=x | Y=c_{k}right) Pleft(Y=c_{k}right)}{P(X=x)} \ &=frac{Pleft(X=x | Y=c_{k}right) Pleft(Y=c_{k}right)}{sum_{k} Pleft(X=x, Y=c_{k}right)} \ &=frac{Pleft(X=x| Y=c_{k}right) Pleft(Y=c_{k}right)}{sum_{k} Pleft(X=x | Y=c_{k}right) Pleft(Y=c_{k}right)} \ &=frac{Pleft(Y=c_{k}right) prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right)}{sum_{k} Pleft(Y=c_{k}right) prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right)} end{aligned} ]
以上第二个等号使用了概率加和法则,第三个等号使用了条件概率公式,后两个等号使用了条件独立性假设。

朴素贝叶斯可用直接用分子表示为:
[ y=f(mathbf{x})=arg max _{c_{k}} frac{Pleft(Y=c_{k}right) prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right)}{sum_{k} Pleft(Y=c_{k}right) prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right)} ]
注意到在公式((10))中,分母的值对所有的(c_k)都相等,因此可舍去分母,得到:
[ y=arg max _{c_k} Pleft(Y=c_{k}right) prod_{j} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right) ]

7 - 参数估计

  1. 极大似然估计
  • 先验概率:
    [ Pleft(Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)}{N}, quad k=1,2, cdots, K ]

  • 条件概率:
    [ begin{array}{l}{Pleft(X^{(j)}=a_{j t} | Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}right)}{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)}} \ {j=1,2, cdots, n ; l=1,2, cdots, S_{j}: k=1,2, cdots, K}end{array} ]

其中函数(I)为指示函数。

  1. 贝叶斯估计

如果某个属性值在训练集中没有与某个类同时出现过,则使用公式((10))进行概率估计则会出现(0),并导致连乘氏计算的概率值也为(0)。为防以上情况出现,引入贝叶斯估计如下。

  • 先验概率:
    [ P_{lambda}left(X^{(j)}=a_{j l} | Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}right)+lambda}{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)+S_{j} lambda} ]
    式中(lambda geqslant 0).

  • 条件概率:
    [ P_{lambda}left(Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)+lambda}{N+K lambda} ]

(lambda=0)时,即等价为极大似然估计。

常用(lambda=1),称为拉普拉斯平滑。

考虑公式((14)),对于任何(l=1,2, cdots, S_{j}, quad k=1,2, cdots, K),都有
[ begin{array}{l}{P_{lambda}left(X^{(j)}=a_{j l} | Y=c_{k}right)>0} \ {sum_{l=1}^{s_{j}} Pleft(X^{(j)}=a_{j l} | Y=c_{k}right)=1}end{array} ]
可见确实是一种分布。公式((15))同理。拉普拉斯平滑的实质是假设属性值与类别是均匀分布,这是额外引入的关于数据先验。它修正了训练集样本不充分而导致概率值为(0)的问题,且在训练集变大时,修正引入的先验影响也会逐渐变得可以忽略。

8 - 算法流程(极大似然估计)

输入:见5. 另有实例(x).

输出:实例(x)的分类.

  1. 计算先验概率与条件概率:
  • 先验概率(共计(K)个式子):
    [ Pleft(Y=c_{k}right)=Pleft(Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)}{N} ]

  • 条件概率(共计(ksum_{j=1}^{n}S_j)个式子):
    [ begin{array}{l}{Pleft(X^{(j)}=a_{j t} | Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}right)}{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)}} \ {j=1,2, cdots, n ; l=1,2, cdots, S_{j}: k=1,2, cdots, K}end{array} ]

  1. 对于给定实例(x=left(x_{i}^{(1)}, x_{i}^{(2)}, cdots, x_{i}^{(n)}right)^{mathrm{T}}),计算:
    [ Pleft(Y=c_{k}right) prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right), quad k=1,2, cdots, K ]

  2. 确定实例(x)的分类:
    [ y=arg max _{a} Pleft(Y=c_{k}right) prod_{j=1}^{n} Pleft(X^{(j)}=x^{(j)} | Y=c_{k}right) ]

9 - 高斯贝叶斯分类器

以上是基础的多项式贝叶斯分类器,用于自变量均为离散值的情况。

如果数据集中的自变量均为连续的数值型数据,则选择本章的高斯贝叶斯分类器

假设自变量特征(x^{left(jright)})服从高斯分布,即:
[ Pleft(x^{left(jright)} | c_{k}right) sim mathcal{N}left(mu_{j,k}, sigma_{j,k}^{2}right) ]
其中(mu_{j,k})(sigma_{j,k})为训练集中特征(x^{left(jright)})属于类别(c_{k})的均值和标准差,则条件概率可以表示为:
[ Pleft(x^{left(jright)} | Y=c_kright)=frac{1}{sqrt{2 pi} sigma_{j,k}} exp left(-frac{left(x^{left(jright)}-mu_{j,k}right)^{2}}{2 sigma_{j,k}^{2}}right) ]
其他步骤与思想不变,参考多项式贝叶斯分类器即可。

10 - 伯努利贝叶斯分类器

在某些任务,如文本挖掘中,特征(x^{left(jright)})均为(0-1)二元值,此时优选伯努利贝叶斯分类器。

假设特征(x^{left(jright)})的条件概率为满足伯努利分布。

设特征(x^{left(jright)}in{0,1}),则记:
[ p=Pleft(X^{(j)}=1| Y=c_{k}right)=frac{sum_{i=1}^{N} Ileft(x_{i}^{(j)}=1, Y=c_{k}right)+lambda}{sum_{i=1}^{N} Ileft(y_{i}=c_{k}right)+K lambda} ]
因此可将条件概率写为:
[ P(X^{left(jright)}=x^{left(jright)}|Y=c_k)=p cdot x^{left(jright)}+(1-p)cdot(1-x^{left(jright)}) ]
其他步骤与思想不变,参考多项式贝叶斯分类器即可。

11 - 番外:为何没有出现损失函数?

以下证明期望风险最小化等价于后验概率最大化。

设选择(0-1)损失函数:
[ L(Y, f(X))=left{begin{array}{ll}{1,} & {Y neq f(X)} \ {0,} & {Y=f(X)}end{array}right. ]
式中(f(X))为分类决策函数。此时期望风险为:
[ R_{mathrm{exp}}(f)=E[L(Y, f(X))] ]
期望是对联合分布(P(X,Y))取的,因此再取条件期望:
[ R_{mathrm{exp}}(f)=E_{X} sum_{k=1}^{K}left[Lleft(c_{k}, f(X)right)right] Pleft(c_{k} | Xright) ]
为使期望风险最小化,需要对(X=x)逐个极小化,即:
[ begin{aligned} f(x) &=arg min _{y in mathcal{Y}} sum_{k=1}^{K} Lleft(c_{k}, yright) Pleft(c_{k} | X=xright) \ &=arg min _{y in mathcal{Y}} sum_{k=1}^{K} Pleft(y neq c_{k} | X=xright) \ &=arg min _{y in mathcal{Y}}left(1-Pleft(y=c_{k} | X=xright)right) \ &=arg max _{y in mathcal{Y}} Pleft(y=c_{k} | X=xright) end{aligned} ]
注意从第一行到第二个行,对于损失函数(L(c_k,y)),如果(y=c_k),则损失函数(L(c_k,y)=0),后一项也同时失效,只有当(yneq c_k)时,损失函数(L(c_k,y)=1),后一项才有效,因此后一项也可以写成第二行的形式以简化算式。从第二行到第三行也容易理解。从第三行到第四行可以注意到(argmin)变成了(argmax),已经从损失函数最大小化转化为后验概率最大化。可知期望风险最小化等价于朴素贝叶斯采用的后验概率最大化:
[ f(x)=arg max _{c_{k}} Pleft(Y=c_{k} | X=xright) ]

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!