西瓜书阅读笔记——第7章-贝叶斯分类器(7-1~7-4)
西瓜书阅读笔记——第7章-贝叶斯分类器(7-1~7-4)
强烈推荐配合西瓜书阅读使用的南瓜书和南瓜书作者录制的学习视频【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集。
贝叶斯决策论
贝叶斯决策论 (Bayesian decision theory) 是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都己知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
据此产生贝叶斯判定准则。
贝叶斯判定准则
为最小化总体风险\(R(h)\) ,只需在每个样本上选择那个能使条件风险\(R(c|\mathbf x)\)最小的类别标记,即 \[ h^*(x)=\mathop{arg min}_{c∈\mathcal Y} R(c|\mathbf x) \] 其中,\(h^*\)为贝叶斯最优分类器。
简单一句话概括就是:最大化后验概率->最小化条件风险。
从贝叶斯决策论(概率框架)的角度:机器学习要做的就是基于有限的训练样本集尽可能准确地估计出后验概率\(P(c |\mathbf x)\)。主要包括两种策略,对应两种模型:生成式模型和判别式模型。
生成式模型generative models和判别式模型discriminative models
判别式模型:给定\(\mathbf x\) ,直接建模\(P(c|\mathbf x)\)来预测\(c\),如决策树、BP神经网络、支持向量机等;
生成式模型:先对联合概率\(P(\mathbf x,c)\)建模,然后再由此推导得出 \(P(c∣\mathbf x)\),公式如下: \[ P(c∣\mathbf x)=\frac{P(\mathbf x,c)}{P(\mathbf x)} \] 联合概率很难求,通过贝叶斯定理求解,转化后公式为: \[ P(c∣\mathbf x)=\frac{P(c)P(\mathbf x|c)}{P(\mathbf x)} \] 因此,需要求解:\(P(c)、P(\mathbf x)\)以及\(P(\mathbf x|c)\)。
求解\(P(c)\)
其中,类先验概率\(P(c)\)表达了样本空间中各类样本所占的比例。根据大数定律(用频率近似估计概率),当训练集包含充足的独立同分布样本时\(P(c)\)可通过各类样本出现的频率来进行估计: \[ P(c)=\frac{|D_c|}{D} \] 其中,\(D_c\)表示训练集\(D\)中类别标记为\(c\)的样本集合, \(|D_c|\)表示集合\(|D_c|\)的样本总数。
因为\(P(c)\)和\(P(\mathbf x|c)\)是连乘的,如果\(|D_c|=0\),即某个属性值在训练集中没有与某个类同时出现过,其他属性携带的信息被训练集中未出现的属性值"抹去'。因此,在估计概率值时通常要进行"平滑"(smoothing),常用"拉普拉斯修正"(Laplacian correction):令\(N\)表示训练集\(D\)中可能的类别,则: \[ \hat P(c)=\frac{|D_c|+1}{|D|+N} \]
求解\(P(\mathbf x)\)
事实上,因为训练集一旦确定,对所有类别来说\(P(\mathbf x)\)都相同,\(P(\mathbf x)\)是一个常数,在求解\(h^*(x)=\mathop{arg max}_{c∈\mathcal Y} P(c|\mathbf x)\)时,可以舍去。
求解\(P(\mathbf x|c)\)
生成式模型中对\(P(\mathbf x|c)\)建模是最困难的一点。主要困难在于类条件概率\(P(\mathbf x|c)\)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。
用不同的方法求解\(P(\mathbf x|c)\)可以有不同的模型。
朴素贝叶斯分类器
朴素贝叶斯基于属性条件独立性假设从而简单建模\(P(x|c)\)。
假设每个特征相互独立,则有: \[ P(c∣\mathbf x)=\frac{P(c)P(\mathbf x|c)}{P(\mathbf x)}=\frac{P(c)}{P(\mathbf x)}\prod_{i=1}^dP(x_i|c) \] 其中,\(d\) 为属性数目,\(x_i\) 为\(\mathbf x\)在第\(i\)个属性上的取值。
再基于贝叶斯判定准则: \[ h^*(x)=\mathop{arg max}_{c∈\mathcal Y} P(c|\mathbf x)=\mathop{arg max}_{c∈\mathcal Y}\frac{P(c)}{P(\mathbf x)}\prod_{i=1}^dP(x_i|c) \] 由于对所有类别来说\(P(\mathbf x)\)都相同,略去,因此,最终求得\(c'\)使得下式\(h_{nb}\)最大。 \[ h_{nb}(\mathbf x)=\mathop{arg max}_{c∈\mathcal Y}P(c)\prod_{i=1}^dP(x_i|c) \]
计算\(P(c)\)
\(P(c)\)利用大数定律估计,前面已经给出了求解方式。
计算\(P(x_i|c)\)
可以看到:
如果属性\(i\)为离散属性,仍然使用大数定律求解\(P(x_i|c)\);同样有拉普拉斯修正后的公式为: \[ \hat P(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i} \] 其中\(N_i\)表示第\(i\)个属性可能的取值数。
如果属性\(i\)为连续属性,先假设符合某种分布(比如,正态分布),利用某种方法估计分布的参数(比如极大似然估计-正态分布-需要求解均值、方差)。假设不同的分布,模型性能可能不同。
半朴素贝叶斯分类器
适当考虑一部分属性间的相互依赖信息,从而既不需进行完全联 合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
独依赖估计One-Dependent Estimator ODE和超父独依赖估计Super-Parent ODE
【独依赖估计(ODE)】:假设每个属性在类别之外最多依赖于一个其他属性,即: \[ P(c|\mathbf x) \varpropto P(c)\prod_{i=1}^dP(x_i|c,pa_i) \] 其中,\(pa_i\)为属性\(x_i\)所依赖的属性,称为\(x_i\)的父属性。
【超父独依赖估计Super-Parent ODE】:依赖于同一个超父属性,因此把超父属性提出去以后,其他各个属性相互独立。 \[ \begin{align} P(c|\mathbf x)&=\frac{P(\mathbf x,c)}{P(\mathbf x)} =\frac{P(c,x_i)P(x_1,...x_{i-1},x_{i+1},...,x_d)}{P(\mathbf x)} \\&\varpropto P(c,x_i)P(x_1,...x_{i-1},x_{i+1},...,x_d|c,x_i) \\&=P(c,x_i)\prod_{j=1}^dP(x_j|c,x_i) \end{align} \] 其中,\(x_i\)是超父属性,\(P(x_i|c,x_i)=1\)。
TAN (Tree Augmented naive Bayes)
AODE (Averaged One-Dependent Estimator)
基于集成学习机制、更为强大的独依赖分类器。与SPODE通过模型选择确定超父属性不同,AODE尝试将每个属性作为超父来构建SPODE,然后将那些具有足够训练数据支撑的(\(|D_{x_i}|≥m'\),\(m'\)为阈值常数,默认为30)SPODE集成起来作为最终结果。
参考文献
【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导直播合集
*视频的PPT:https://pan.baidu.com/s/1g1IrzdMHqu6XyG0bFIcFsA 提取码: 7nmd