《机器学习》 小白Python学习笔记(九) ————第七章 贝叶斯分类器

引言

说到贝叶斯分类器,必然离不开的是贝叶斯公式:
P(BiA)=P(ABi)P(Bi)j=1nP(ABj)P(Bj),i=1,2,,n P\left(B_{i} \mid A\right)=\frac{P\left(A \mid B_{i}\right) P\left(B_{i}\right)}{\sum_{j=1}^{n} P\left(A \mid B_{j}\right) P\left(B_{j}\right)}, \quad i=1,2, \cdots, n
等式右侧的分母其实是根据全概率公式P(A)P(A)展开,分子实际是根据条件概率公式P(AB)P(AB)展开。
在贝叶斯分类器中我们通常表示为:
P(Cx)=P(xC)P(C)j=1nP(xC)P(C),i=1,2,,n P\left(C \mid \boldsymbol x\right)=\frac{P\left(\boldsymbol x \mid C\right) P\left(C\right)}{\sum_{j=1}^{n} P\left(\boldsymbol x \mid C\right) P\left(C\right)}, \quad i=1,2, \cdots, n
其中,我们将P(C)P\left(C\right)称为先验概率,即在事情发生之前,根据以往的经验等推测未来此事件发生的概率;将P(xC)P\left(\boldsymbol x|C\right)称为后验概率,即在事情发生之后,分析由各种原因导致发生的概率。
贝叶斯分类器就是根据先验概率利用贝叶斯公式计算出各种分类的后验概率,选择最大的后验概率所对应的分类结果。

贝叶斯决策论

贝叶斯决策论是在概率框架下基于已知的相关概率和误判损失来选择最优分类的决策方法。
假设样本集共有N种类别,即c1,c2,,cN{c_1,c_2,\cdots,c_N},λij\lambda_{ij}是将一个本来标记为cic_i的样本错误标记成cjc_j所产生的损失,P(cjx)P\left(c_j \mid \boldsymbol x\right)是将样本分类为cjc_j的概率,由此,λijP(cjx)\lambda_{ij}P\left(c_j \mid \boldsymbol x\right)即为标记为cic_i的样本错误标记成cjc_j所产生的期望损失。对jj相加求和就可以得到将样本x分类为cjc_j所产生的期望损失:
R(cix)=j=1NλijP(cjx) R\left(c_{i} \mid \boldsymbol{x}\right)=\sum_{j=1}^{N} \lambda_{i j} P\left(c_{j} \mid \boldsymbol{x}\right)
常见的有两种贝叶斯决策,一种是基于最小风险的贝叶斯决策,一种是基于最小错误率的贝叶斯决策。

基于最小风险的贝叶斯决策

任务是寻找一个判定准则 h:XCh: X\rightarrow C 以最小化总体风险
R(h)=Ex[R(h(x)x)] R(h)=\mathbb{E}_{\boldsymbol{x}}[R(h(\boldsymbol{x}) \mid \boldsymbol{x})]
显然,若对每个样本 x, h能最小化条件风险R(h(x) | x),则总体风险R(h)也将被最小化,即贝叶斯判 定准则:为最小化总体风险, 只需在每个样本上选择哪个能使条件风险 R(C | x)最小的类别标记:
h(x)=argmincYR(cx) h^{*}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \min } R(c \mid \boldsymbol{x})
此时, hh^* 被称为贝叶斯最优分类器,与之对应的总体风险$R(h^) $称为贝叶斯风险。 1R(h)1-R(h^*) 反映了分类器所能达到的最好性能,即通过机器学习所能产生的模型精度理论上限。

基于最小错误率的贝叶斯决策

基于最小错误率的贝叶斯决策也就是只根据分类的正确与否进行决策,λ\lambda就变成了一个0-1变量。
误判损失 λ\lambda 可写为:
λij={0, if i=j1, otherwise  \lambda_{i j}=\left\{\begin{array}{ll} 0, & \text { if } i=j \\ 1, & \text { otherwise } \end{array}\right.
也就是说若预判正确了,则损失为0,若预判错误了,则损失为1。 此时x的条件风险就是1减去后验概率,即:
R(cx)=1P(cx) R(c \mid \boldsymbol{x})=1-P(c \mid \boldsymbol{x})
于是,基于最小错误率的贝叶斯最优分类器为:
h(x)=argmaxcYP(cx) h^{*}(\boldsymbol{x})=\underset{c \in \mathcal{Y}}{\arg \max } P(c \mid \boldsymbol{x})
即对每个样本x,选择能使后验概率P(C | x)最大的类别标记。

朴素贝叶斯分类器

基于贝叶斯公式来估计后验概率P(Cx)P(C | x)的主要困难在于:类条件概率P(xC)P(x | C)是所有属性上的联合概率,难以从有限的训练样本直接估计而得,为避开这个障碍,朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立,即假设每个属性独立的对分类结果产生影响。

则基于属性条件独立性假设,贝叶斯公式可重写为:
P(cx)=P(c)P(xc)P(x)=P(c)P(x)i=1dP(xic)P(c \mid \boldsymbol{x})=\frac{P(c) P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})}=\frac{P(c)}{P(\boldsymbol{x})} \prod_{i=1}^{d} P\left(x_{i} \mid c\right)
其中d为属性数目,xi为x在第i个属性上的取值。 由于对所有类别来说P(x)相同,因此贝叶斯判定准则为(朴素贝叶斯分类器的表达式):
hnb(x)=argmaxcP(c)i=1dP(xic) h_{n b}(\boldsymbol{x})=\underset{c }{\arg \max } P(c) \prod_{i=1}^{d} P\left(x_{i} \mid c\right)
令Dc表示训练集D中第c类样本组成的集合,且有充足的独立同分布样本, 则估计先验概率为
P(c)=DcD P(c)=\frac{\left|D_{c}\right|}{|D|}

  1. 对于离散属性
    Dc,xiD_{c,xi}表示Dc中在第闪属性上取值为xix_i的样本组成的集合, 则条件概率可估计为
    P(xic)=Dc,xiDc P\left(x_{i} \mid c\right)=\frac{\left|D_{c, x_{i}}\right|}{\left|D_{c}\right|}
  2. 对于连续属性
    可考虑概率密度函数,假定服从正态分布, 则有:
    p(xic)=12πσc,iexp((xiμc,i)22σc,i2) p\left(x_{i} \mid c\right)=\frac{1}{\sqrt{2 \pi} \sigma_{c, i}} \exp \left(-\frac{\left(x_{i}-\mu_{c, i}\right)^{2}}{2 \sigma_{c, i}^{2}}\right)

需要注意的是,如果某个属性A值cac_a没有在某个类中出现过,先验概率会变为零,无论一个新歌样本其他属性值如何,只要A属性值为cac_a就一定不会归为此类。显然这是不合理的。
所以,为了避免其他属性携带的信息被训练集中未出现的属性值抹去,在估计概率时通常要进行“平滑 常用"拉普拉多修正“, 即:
P^(c)=Dc+1D+NP^(xic)=Dc,xi+1Dc+Ni \begin{aligned} \hat{P}(c) &=\frac{\left|D_{c}\right|+1}{|D|+N} \\ \hat{P}\left(x_{i} \mid c\right) &=\frac{\left|D_{c, x_{i}}\right|+1}{\left|D_{c}\right|+N_{i}} \end{aligned}

半朴素贝叶斯分类器

上面的朴素贝叶斯分类器是在假设所有属性之间是独立不相关的基础上的,然而实际上这一假设是很难成立的。因此,如果我们只建设部分属性之间是相关的,这样既在一定程度上考虑了属性之间的相关性,也不用计算所有属性之间的联合概率,更加贴近实际。这便是半朴素贝叶斯分类器的基本思想。
具体地,我们假设每个特征最多可以依赖一个额外的特征,这种假设称为“独依赖估计(One-Dependent Estimator,ODE)",于是模型就可以写成:
P(yx)=P(y)P(xy)P(x)=P(y)P(x)i=1dP(xixik,y)\begin{aligned} P(y \mid x) &=\frac{P(y) P(x \mid y)}{P(x)} =\frac{P(y)}{P(x)} \prod_{i=1}^{d} P\left(x_{i} \mid x_{ik}, y\right) \end{aligned}
条件中的xikx_ik即为属性xix_i所依赖的特征,因此我们我们就需要去确定每个特征所以来的特征,我们称所依赖的特征称为父特征,常用的有三种方法:

  1. 超父独依赖估计(Super-Parent ODE,SPODE)
    这个方法的含义是选择一个特征作为其他所有特征所依赖的特征,称为超父。一般会通过交叉验证等方法确定。
  2. TAN(Tree Augmented naive Bayes):
    这种方法的基础是最大带权生成树,即(1). 首先计算每两个特征之间的条件互信息;(2). 然后以特征为节点,以特征之间的条件互信息作为权值来构建一个完全图,根据该完全图再构建一个最大带权生成树,挑选根变量,将边置为有向;(3). 最后再加入y,增加从y到每个特征的有向边。其结构如下图所示:
    在这里插入图片描述
    条件互信息的计算方法如下
    I(xi,xjy)=xi,xj;yYP(xi,xjy)logP(xi,xjy)P(xiy)P(xjy)I\left(x_{i}, x_{j} \mid y\right)=\sum_{x_{i}, x_{j} ; y \in Y} P\left(x_{i}, x_{j} \mid y\right) \log \frac{P\left(x_{i}, x_{j} \mid y\right)}{P\left(x_{i} \mid y\right) P\left(x_{j} \mid y\right)}
  3. AODE(Average One-Dependent Estimator)
    是一种基于集成学习机制的独依赖分类器,它将每个属性作为超父来构建SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果。
©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值