贝叶斯决策论

  • 背景问题

    • 给定 NN 个类别,另 λij\lambda_{ij} 表示第 jj 类样本误分类为第 ii 类所产生的损失,则基于后验概率将样本 xx 分到第 ii 类的条件风险为 R(cix)=Σj=1NλijP(cjx)R(c_i|x) = \Sigma_{j=1}^N \lambda_{ij} P(c_j|x)

    • 贝叶斯判定准则 h(x)=arg mincR(cx)h^*(x) = \argmin_c R(c|x)

      • hh^* 表示最好的选择,也叫被也四最优分类器,总体风险称为贝叶斯风险
      • 整个式子表示求最小概率的参数 c 也就是最不容易被误识别的情况
      • 这个反映了学习性能理论上的上限值
    • 那么问题来了,事实的条件概率 P(cx)P(c|x) 怎么得到 ?

    • 于是机器学习就是要基于有限的训练样本尽可能准确地估计出后验概率

  • 判别式模型 Discriminative – 统计学习

    • 特点:给两个输入,将其分开

    • 举例

      • 决策树
      • bp 神经网络
      • svm
  • 生成式模型 Generative

    • 特点:先对联合概率分布 P(c,x)P(c,x) 建模,然后通过 P(cx)=P(x,c)p(x)P(c|x) = \frac{P(x,c)}{p(x)} 获得条件概率

    • 为什么能这样做?

      • 因为机器学习源自于有限的数据集,概率分布是未知的,我们绘制的前提基于自己的拟合
    • 贝叶斯分类器 Bayes Classification

      • 贝叶斯学习特点:在传统统计学习中,我们默认观测值是必然的,但是在贝叶斯学习角度,观测值是基于其自身的概率分布模型,并不是必然性的

        • 因此这个概率需要分布进行推断
        • 《PRML》是基于贝叶斯理论的机器学习书籍
      • 贝叶斯分类器:我们称呼使用贝叶斯公式的模型为贝叶斯分类器,并不一定是贝叶斯学习

    • 极大似然估计

      • 先假设概率分布的形式 P(xc)P(x|c) 具有确定的概率分布形式(比如满足高斯分布),并且被参数 θc\theta_c (对于高斯分布就是 μ,σ\mu,\sigma, cc 表示的是类别) 唯一确定,则任务就是利用数据集 DD来估计参数θc\theta_c,对于训练集中第$c 类样本类样本D_c组成的集合组成的集合D_c的似然为的似然为P(D_c | \theta_c) = \prod_{x\in D_c} P(x|\theta_c)$

        • 这里有一个前提,就是 xx 是独立同分布事件

        • 比如我们扔不均匀骰子,概率应该满足高斯分布(因为必然存在一个期望和标准差)同时我们可以观测多次扔骰子的结果并且推断其各个值的实际概率

        • 比如我们求不均匀色子投掷两次 2\le 2 都出现的概率,那么我们有 θa=(μa,σa)\theta_a = (\mu_a,\sigma_a) 的一组未知确定情况,然后我们开始多次投掷骰子得到数据集 DaD_a , 已知 x1,x2x_1,x_2 分别表示结果为 121 | 2 的概率,连乘就有了上述公式

          • 从例子中我们可以看出 不同的 PP 的前提是不能归为一类且需要同时发生
          • 公式表示就是 P(x1;x2;;xkc)=iP(xic)P(x_1;x_2;\cdots;x_k | c) = \prod_i P(x_i|c)
      • 连乘下溢问题

        • 例如,如果您在 Python 中尝试用很多很小的数相乘,最后四舍五入后会得到 0。由于计算机的精度限制,当计算机处理非常小的数时,会出现下溢问题。
        • 为了防止这一现象,我们可能要将接近于 0 的小数变成对数似然,这下就不小了
        • LL(θc)=logP(Dcθc)=ΣxDclogP(xθc)LL(\theta_c) = \log P(D_c|\theta_c) = \Sigma_{x\in D_c} \log P(x|\theta_c)
        • 这下极大似然估计为 θ^c=arg maxθcLL(θc)\hat \theta_c = \argmax_{\theta_c} LL (\theta_c)
  • 朴素贝叶斯分类器

    • 公式 P(cx)=P(c)P(xc)P(x)P(c | x) = \frac{P(c)P(x|c)}{P(x)}

      • 基本假设: 属性相互独立

      • 主要障碍:所有属性上的联合概率难以从有限的样本获得

        • 组合爆炸或者样本稀疏
    • 从统计数据获得参数

      • 估计 P(c)=DcDP(c) = \frac{|D_c|}{|D|}

      • 估计 P(xc)P(x|c)

        • 对于离散属性,令 Dc,xiD_{c,x_i} 表示 DcD_c 中在第 ii 个属性上取值为 xix_i 的样本组成的集合,则 P(xic)=Dc,xiDcP(x_i | c) =\frac{|D_{c,x_i}|}{|D_c|}

          • 这个用 似然的公式求解 P(x1;x2;;xkc)=iP(xic)P(x_1;x_2;\cdots;x_k | c) = \prod_i P(x_i|c)
        • 对于连续属性,考虑 PDF 函数,首先假定 p(xic)N(μc,i,σc,i2)p(x_i | c)\sim\mathcal N(\mu_{c,i},\sigma_{c,i}^2)p(xic)=12πσc,iexp((xiμc,i)22σc,i2)p(x_i | c) = \frac 1{\sqrt{2\pi}\sigma_{c,i}}\exp(-\frac{(x_i - \mu_{c,i})^2}{2\sigma_{c,i}^2})

    • 拉普拉斯修正 Laplacian Correction

      • 如果样本量过小,那么会出现 b 属性必然对应 a 特征,却不符合事实数据

        • 证伪主义树大旗
      • 同时如果属性c和d没有同时出现过,那么在连乘概率的时候会出现概率被抹去的现象 (x*0=0)

      • 模型公式:P^(c)=Dc+1D+N,P^(xic)=Dc,xi+1Dc+Ni\hat P(c) = \frac{|D_c| + 1}{|D| +N},\hat P(x_i | c) = \frac{|D_{c,x_i}| + 1}{|D_c|+N_i}

        • 这里假定了不同种类分布均匀,也可以改进为不均匀的模型,再乘以一个系数
        • NN 表示训练集 DD 中可能的类别数量,NiN_i 表示第 ii 个属性可能的取值数