Machine Learning
  • Introduction
  • 机器学习
    • 前言
      • 符号表
    • 监督式学习
      • 感知机
        • 感知机模型
        • 感知机学习算法
        • 算法python实现
      • Logistic回归
        • Logistic分布
        • Logistic回归模型
        • 算法python实现
      • 线性回归
        • 线性回归模型
        • 算法python实现
      • K近邻法
        • k近邻模型
        • kd树方法
        • kd树python实现
        • knn实例
      • 朴素贝叶斯法
        • 模型和原理
        • 参数估计
        • 算法和实现
      • 决策树
        • 模型与学习
        • 特征选择
        • 生成算法和剪枝
        • python实现
      • 支持向量机
    • 神经网络
      • 神经元模型和感知机
      • 神经网络
      • 神经网络的矩阵表达
      • 反向传播算法
        • 算法证明
        • 算法代码
        • 基于矩阵的计算
      • 改进神经网络的学习方法
        • 交叉熵代价函数
        • softmax
        • regularization
        • 权重初始化
      • 卷积神经网络
        • 基本介绍
    • 数学基础
      • 线性代数
        • 特征值和特征向量
      • 概率统计
        • 随机变量的特征
        • 样本统计量
        • 先验后验概率
      • 微积分
        • 向量内积
        • 方向导数和梯度
        • 梯度下降法
      • 信息论
        • 熵
        • 相对熵和交叉熵
        • 条件熵
        • 互信息
Powered by GitBook
On this page
  • 1. 基本方法
  • 2. 模型的原理
  1. 机器学习
  2. 监督式学习
  3. 朴素贝叶斯法

模型和原理

Previous朴素贝叶斯法Next参数估计

Last updated 7 years ago

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

对于给定的训练集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入xxx,利用贝叶斯定理求出后验概率最大的输出yyy。

1. 基本方法

假设输入空间X⊆Rn\mathcal{X}\subseteq R^nX⊆Rn为nnn维向量的集合,输出空间为类标记集合Y={c1,c2,...,cK}\mathcal{Y}=\{c_1, c_2,...,c_K\}Y={c1​,c2​,...,cK​}。输入为特征向量x∈Xx\in \mathcal{X}x∈X,输出为类标记y∈Yy\in \mathcal{Y}y∈Y。XXX是定义在输入空间X\mathcal{X}X上的随机向量,YYY是定义在输出空间Y\mathcal{Y}Y上的随机变量。P(X,Y)P(X,Y)P(X,Y)是XXX和YYY的联合概率分布。训练数据集T={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}T=\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}T={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}是由P(X,Y)P(X,Y)P(X,Y)独立同分布产生的,其中每个x=(x1,x2,...,xn)x=(x_1, x_2,...,x_n)x=(x1​,x2​,...,xn​)是nnn维向量。

朴素贝叶斯法通过对给定的输入xxx,通过学习到的模型计算后验概率分布P(Y=ck∣X=x)P(Y=c_k|X=x)P(Y=ck​∣X=x),然后将后验概率最大的类作为xxx的输出。计算后验概率:

P(Y=ck∣X=x)=P(Y=ck,X=x)P(X=x)=P(X=x∣Y=ck)P(Y=ck)∑k=1KP(X=x∣Y=ck)P(Y=ck)P(Y=c_k|X=x)=\dfrac{P(Y=c_k, X=x)}{P(X=x)}=\dfrac{P(X=x|Y=c_k)P(Y=c_k)}{\displaystyle\sum_{k=1}^KP(X=x|Y=c_k)P(Y=c_k)}P(Y=ck​∣X=x)=P(X=x)P(Y=ck​,X=x)​=k=1∑K​P(X=x∣Y=ck​)P(Y=ck​)P(X=x∣Y=ck​)P(Y=ck​)​

其中k=1,2,...,Kk=1,2,...,Kk=1,2,...,K,可以看到分母对于所有的类标记ckc_kck​都是相同的,则可以得到输出

y=arg⁡max⁡ckP(X=x∣Y=ck)P(Y=ck)y=\arg \max_{c_k}P(X=x|Y=c_k)P(Y=c_k)y=argck​max​P(X=x∣Y=ck​)P(Y=ck​)

其中

P(Y=ck), k=1,2,...,KP(Y=c_k), \ k=1,2,...,KP(Y=ck​), k=1,2,...,K

是先验概率分布。

是条件概率分布(似然函数)。假定条件概率分布中的每个特征是条件独立的,则

这一假设使得朴素贝叶斯法变得简单,但是会牺牲一定的分类准确率。

于是代入,可以得到:

2. 模型的原理

首先,定义0-1损失函数:

转换成求最大:

这样便是在0-1损失函数的情况下,期望风险最小化准则得到了后验概率最大化准则,即朴素贝叶斯法的原理。

P(X=x∣Y=ck)=P(X1=x1,X2=x2,...,Xn=xn∣Y=ck), k=1,2,...,KP(X=x|Y=c_k)=P(X_1=x_1, X_2=x_2,...,X_n=x_n|Y=c_k), \ k=1,2,...,KP(X=x∣Y=ck​)=P(X1​=x1​,X2​=x2​,...,Xn​=xn​∣Y=ck​), k=1,2,...,K
P(X=x∣Y=ck)=∏j=1nP(Xj=xj∣Y=ck)P(X=x|Y=c_k)=\prod_{j=1}^n P(X_j=x_j|Y=c_k)P(X=x∣Y=ck​)=j=1∏n​P(Xj​=xj​∣Y=ck​)
y=f(x)=arg⁡max⁡ck∏j=1nP(Xj=xj∣Y=ck)P(Y=ck)y=f(x)=\arg \max_{c_k}\prod_{j=1}^n P(X_j=x_j|Y=c_k)P(Y=c_k)y=f(x)=argck​max​j=1∏n​P(Xj​=xj​∣Y=ck​)P(Y=ck​)

朴素贝叶斯法属于生成模型(模型给定了输入XXX产生输出YYY的生成关系,区别于判别模型)

L(Y,f(X))={1if Y≠f(X)0if Y=f(X)L(Y,f(X)) = \begin{cases} 1 &\text{if }Y{\neq}f(X) \\ 0 &\text{if }Y{=}f(X) \end{cases}L(Y,f(X))={10​if Y=f(X)if Y=f(X)​

其中f(X)f(X)f(X)是分类决策函数的预测值,YYY是真实值。这时,损失函数的期望是

Rexp(f)=E[L(Y,f(X))]R_{exp}(f)=E[L(Y,f(X))]Rexp​(f)=E[L(Y,f(X))]

对于输入X=xX=xX=x,计算X=xX=xX=x条件下的期望损失函数,即条件期望

E[L(Y,f(X=x))∣X=x]=∑k=1KL(ck,f(X=x))P(ck∣X=x)E[L(Y,f(X=x))|X=x]=\displaystyle\sum_{k=1}^KL(c_k, f(X=x))P(c_k|X=x)E[L(Y,f(X=x))∣X=x]=k=1∑K​L(ck​,f(X=x))P(ck​∣X=x)

则在X=xX=xX=x条件下,求得期望风险最小化,

f(x)=arg⁡min⁡y∈Y∑k=1KL(ck,y)P(ck∣X=x)f(x)=\arg\min_{y\in \mathcal{Y}}\displaystyle\sum_{k=1}^KL(c_k, y)P(c_k|X=x)f(x)=argy∈Ymin​k=1∑K​L(ck​,y)P(ck​∣X=x)

也就是计算每一个y∈Yy\in \mathcal{Y}y∈Y,计算其条件期望,并找出其中的最小值时的yyy作为输出。

同时y=cky=c_ky=ck​时,L(ck,y)=0L(c_k, y)=0L(ck​,y)=0,则

f(x)=arg⁡min⁡y∈Y∑ck≠yP(ck∣X=x)f(x)=\arg\min_{y\in \mathcal{Y}}\displaystyle\sum_{c_k\neq y}P(c_k|X=x)f(x)=argy∈Ymin​ck​=y∑​P(ck​∣X=x)

然后条件概率对于所有可能的类标签总和为1,即∑k=1KP(ck∣X=x)=1\displaystyle\sum_{k=1}^KP(c_k|X=x)=1k=1∑K​P(ck​∣X=x)=1,于是得到:

f(x)=arg⁡min⁡ck∈Y(1−P(ck∣X=x))f(x)=\arg\min_{c_k\in \mathcal{Y}}\big(1-P(c_k|X=x)\big)f(x)=argck​∈Ymin​(1−P(ck​∣X=x))
f(x)=arg⁡max⁡ck∈YP(ck∣X=x)f(x)=\arg\max_{c_k\in \mathcal{Y}}P(c_k|X=x)f(x)=argck​∈Ymax​P(ck​∣X=x)