贝叶斯分类 & 朴素贝叶斯分类

该博客借鉴周志华-机器学习的解读,有加入自己的感悟,一方面作为学习的笔记,再者有基于此做一些实际的思考

1. 贝叶斯分类

贝叶斯策论是概率框架下实施决策的基本方法,适用于各种分类任务;

简单聊一下 先验后验 概率:

  • 条件: 今天风大/小(用A表示该事件)
  • 结果:是否可以骑行(用B表示该事件)

那么: 先验概率就是 P ( A ) P(A) P(A),后验概率就是 P ( A ∣ B ) P(A|B) P(AB)

ok,我们继续往下讨论贝叶斯:

假设有N种类别标记, y = ( c 1 , c 2 , … , c N ) y = (c_1,c_2,…,c_N ) y=(c1,c2,,cN),$\lambda_{ij} 表 示 将 一 个 真 实 标 记 为 表示将一个真实标记为 c_j 的 样 本 的样本 x 标 记 为 标记为 c_i 的 损 失 , 基 于 后 验 概 率 的损失,基于后验概率 ,P(c_i|x) 来 计 算 样 本 来计算样本 x$上的条件损失:

R ( c ∣ x ) = ∑ j N λ i j P ( c j ∣ x ) R(c|x) = \sum_j^N\lambda_{ij}P(c_j|x) R(cx)=jNλijP(cjx) —— 式1

在机器学习中,多分类的任务多会在output层使用 s o f t m a x softmax softmax作为激活输出所有类别概率就是基于上述的原理;
在这里插入图片描述

这样来看上式(式1)就可以转化为:

R ( c ∣ x ) = ∑ j N λ i j P ( h ( x ) ∣ x ) R(c|x) = \sum_j^N\lambda_{ij}P(h(x)|x) R(cx)=jNλijP(h(x)x) —— 式2

那么我们的任务就变成了寻找 h h h使得 R ( c ∣ x ) R(c|x) R(cx)最小的过程:

R ( h ) = E x [ R ( h ( x ) ∣ x ) ] R(h) = E_x[R(h(x)|x)] R(h)=Ex[R(h(x)x)] —— 式3

显然对于每个样本 x x x,若h能最小化条件风险 R ( h ( x ) ∣ x ) R(h(x)|x) R(h(x)x),则总体的条件风险也会被最小化,这就是 贝叶斯判定准则:

最小化总体风险,只需再每个样本上选择那个能使条件风险最小的类别标记

  • 注意这里寻找h的过程就是寻找训练模型中参数 θ \theta θ 最优的过程

所以就有:

θ = a r g m i n c ∈ y R ( c ∣ x ) \theta = argmin_{c\in y}R(c|x) θ=argmincyR(cx) —— 式4

在多分类中我们的目标是降低错误分类的概率,提升正确分类的概率:

f ( x ) = { 1 , if i = j; 0 other f(x)=\begin{cases}1,& \text{if i = j;}\\0& \text{other}\end{cases} f(x)={1,0if i = j;other

这样就可以 惩罚错误的分类概率,当然也可以兼具提升分类正确的概率

这样的话,对于分类条件风险(我们要最大化这个条件风险,即优化分类正确的概率):

R ( c ∣ x ) = P ( c ∣ x ) R(c|x) = P(c|x) R(cx)=P(cx)

那么就转化为一个极大似然估计的问题:

θ = a r g m a x c ∈ y R ( c ∣ x ) \theta = argmax_{c\in y}R(c|x) θ=argmaxcyR(cx) —— 式5

这里我们可以看到使用贝叶斯判定准则(或者是极大/极小似然估计),我们的一个比较难求的点是后验概率 P ( c ∣ x ) P(c|x) P(cx);

  • 判别式模式:给定 x x x,可以通过网络建模 P ( c ∣ x ) P(c|x) P(cx)(一般取输出概率最大的为最终c)来获得最终的类别c;如 s o f t m a x softmax softmax激活
    在这里插入图片描述
    需要满足的条件

​ 1.所有输出为非负概率,区间 [ 0 , 1 ] [0,1] [0,1]

​ 2.所有概率之和为1,即: ∑ i = 1 N P ( c i ∣ x ) = 1 \sum_{i = 1}^NP(c_i|x) = 1 i=1NP(cix)=1

  • 生成式模式:

    P ( c ∣ x ) = P ( x , c ) P ( x ) P(c|x) = \frac{P(x,c)}{P(x)} P(cx)=P(x)P(x,c) —— 式6

    先来看三个基本公式:

    P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B) = \frac{P(AB)}{P(B)} P(AB)=P(B)P(AB)

    P ( A , B ) = ∑ i P ( A ∣ B i ) ∗ P ( B i ) P(A,B) = \sum_{i}P(A|B_i) * P(B_i) P(A,B)=iP(ABi)P(Bi)

    P ( B i ∣ A ) = P ( A ∣ B i ) ∗ P ( B i ) ∑ j P ( A ∣ B j ) ∗ P ( B j ) = P ( A ∣ B i ) ∗ P ( B i ) P ( A ) P(B_i|A) = \frac{P(A|B_i)*P(B_i)}{\sum_jP(A|B_j)*P(B_j)} = \frac{P(A|B_i)*P(B_i)}{P(A)} P(BiA)=jP(ABj)P(Bj)P(ABi)P(Bi)=P(A)P(ABi)P(Bi)

    所以基于贝叶斯定理,则式6可以变形为

    P ( c ∣ x ) = P ( x , c ) P ( x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|x) = \frac{P(x,c)}{P(x)} = \frac{P(c)P(x|c)}{P(x)} P(cx)=P(x)P(x,c)=P(x)P(c)P(xc) —— 式7

    • P©是先验概率
    • P(x|c)是样本x相对于标记c对应的类条件概率,或者称为似然
    • P(x)是用于归一化的"证据因子

在实际中,假设样本的d个属性都是 0/1这样的二值表示,那么样本空间中将有 2 d 2^d 2d中可能,在实际中这个值是远大于样本数m的,所以直接使用频率来估计 P ( x ∣ c ) P(x|c) P(xc)是不可行的,因为未观测到和概率为0是不同的;所以我们要用到朴素贝叶斯分类器

2 朴素贝叶斯分类

由上可知贝叶斯公式用来分类,样本数 m m m一般情况会远远小于属性的所有组合( 2 d 2^d 2d ),所以我们这里使用朴素贝叶斯分类器,这是从属性维度来进行考虑,因为我们属性的值一般是可控的,比如二值(0或者1):

“属性条件独立性假设”:对于已知类别,假设所有属性相互独立.换言之.假设每个属性独立的对分类结果发生影响.则式7可以变形为

P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|x) = \frac{P(c)P(x|c)}{P(x)} = \frac{P(c)}{P(x)}\prod_{i=1}^dP(x_i|c) P(cx)=P(x)P(c)P(xc)=P(x)P(c)i=1dP(xic) —— 式8

当然,如果你数据足够的大,使用端到端的判定式模型是完全没有问题了,但是当数据不足时就要考虑样本数 m m m是否可以代表属性的所有组合,如果不行,你就需要优化你的算法了,比如朴素贝叶斯

下面来看式8的各项的计算:

  • D表示所有的样本数
  • D c D_c Dc是D集合上所有属于第C类样本组合的集合
  • x i x_i xi表示样本的第 i i i个属性

那么:

P ( c ) = ∣ D c ∣ ∣ D ∣ P(c) = \frac{|D_c|}{|D|} P(c)=DDc

P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(x_i|c) = \frac{|D_{c,x_i}|}{|D_c|} P(xic)=DcDc,xi

对于连续的概率分布,满足 P ( x i ∣ c ) ∼ ( μ c , i , σ c , i 2 ) P(x_i|c) \thicksim (\mu_{c,i},\sigma^2_{c,i}) P(xic)(μc,i,σc,i2)

P ( x i ∣ c ) = 1 ( 2 π ) 1 / 2 σ c , i e x p ( − ( x i − μ c , i ) 2 2 σ c , i 2 ) P(x_i|c) = \frac{1}{(2\pi)^{1/2}\sigma_{c,i}}exp(-\frac{(x_i-\mu_{c,i})^2}{2\sigma^2_{c,i}}) P(xic)=(2π)1/2σc,i1exp(2σc,i2(xiμc,i)2)

同理可以看做是一个最大化正确分类概率的一个极大似然问题:

θ c = a r g m a x c ∈ y P ( c ) ∏ i = 1 d P ( h ( x i ) ∣ c ) \theta_c = argmax_{c \in y} P(c)\prod_{i = 1}^{d}P(h(x_i)|c) θc=argmaxcyP(c)i=1dP(h(xi)c)

h ( x i ) = θ c ∗ X h(x_i) = \theta_c * X h(xi)=θcX

下面看一个例子<摘自周志华的机器学习>
在这里插入图片描述
在这里插入图片描述
那么我们来看好瓜和坏瓜的概率(单项的计算这里省略)
在这里插入图片描述
因为 0.038 > 6.80 x 1 0 − 5 10^{-5} 105,所以可以认为该样本是"好瓜"

在计算某项的时候,可能回出现这样的情况:

P ( 纹 理 = 模 糊 ∣ 好 瓜 = 是 ) = 0 8 = 0 P(纹理=模糊|好瓜=是) = \frac {0}{8} = 0 P(==)=80=0

这样的情况出现会导致:

P ( x = 测 1 ∣ 好 瓜 = 是 ) = 0 P(x = 测1|好瓜=是) = 0 P(x=1=)=0

这样就会导致判断出错,所以对于这种特殊情况我们要进行修正:

P ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N P(c) = \frac{|D_c|+1}{|D|+N} P(c)=D+NDc+1

P ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i P(x_i|c) = \frac{|D_{c,x_i}| + 1}{|D_c| + N_i} P(xic)=Dc+NiDc,xi+1

这样就解决了上诉问题,有点类似于Adam优化器优化梯度反向传播的场景

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值