决策论——贝叶斯决策

发布时间 2023-04-09 09:49:13作者: 郝hai

风险型决策的基本方法是将状态变量看成随机变量,用先验分布表示状态变量的概率分布,用期望值准则计算方案的满意程度。但是在日常生活中,先验分布往往存在误差,为了提高决策质量,需要通过市场调查来收集补充信息,对先验分布进行修正,然后用后验分布来决策,这就是贝叶斯决策。贝叶斯理论是决策领域的一个重要分支。

一、贝叶斯公式

举例说明如下:
前验概率: 一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“先验概率”的计算。
后验概率: 假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是女生的概率是多大吗?这就是所谓的“后验概率”。

将上例转化为分类问题,则类别\(c\)={男,女},学生个体为样本\(x\),其中\(x\in X\),其中随机变量\(X\)是一维向量,只有唯一的属性:\(性别\)∈{长裤,裙子}

先验概率的计算:

\[P(pants)=60∗100+40∗50=80 \]

表示随机选取一个学生,他(她)穿长裤的概率的概率。
后验概率的计算:

\[P(girl∣pants)=P(穿长裤的女生/穿长裤的人)=\frac{P(girl,pants)}{P(pants)}=P(girl)∗\frac{P(pants∣girl)}{P(pants)}=40∗50÷80=25​ \]

表示一个穿长裤的学生是女生的概率。
其中在求解后验概率的公式中,我们用到了以下两个公式:

\[P(c∣x)=P(x,c)P(x)\quad P(c|x)=\frac{P(x,c)}{P(x)}→(后验公式) \]

二、贝叶斯决策理论

贝叶斯决策论,基于概率和误判损失来选择最优的类别标记。本部分内容将从以下问题出发:
问题描述:对于样本xxx,有NNN种可能的类别标记,即类别空间y={c1,c2,⋯,cN}y=\{c_1,c_2,\cdots ,c_N\}y={c1​,c2​,⋯,cN​}
λij\lambda_{ij}λij​表示将一个真实标记为cjc_jcj​的样本误分类为cic_ici​所产生的损失。基于后验概率P(ci∣x)P(c_i|x)P(ci​∣x)(即对于给定样本,判断样本属于哪个分类,概率最大的那个类别是最可能正确的类别)可获得将样本xxx分类为cic_ici​所产生的期望损失,即在样本xxx上的“条件风险”:
R(ci∣x)=∑j=1NλijP(cj∣x)R(c_i|x)=\sum_{j=1}^{N}\lambda_{ij}P(c_j|x)R(ci​∣x)=j=1∑N​λij​P(cj​∣x)
我们训练模型的目的就是为了寻找一个映射函数h:x→yh:x\rightarrow yh:x→y以最小化总体风险:
R(h)=Ex[R(h(x)∣x)]R(h)=E_x[R(h(x)|x)]R(h)=Ex​[R(h(x)∣x)]
那么对于每个样本xxx,若h(x)h(x)h(x)能最小化条件风险R(h(x)∣x)R(h(x)|x)R(h(x)∣x),则总体风险R(h)R(h)R(h)也将被最小化。所以为了得到最小的总体风险,只需在每个样本上选择哪个能使条件风险R(c∣x)R(c|x)R(c∣x)最小的类别标记,即
h∗(x)=argminc∈yR(c∣x)h^*(x)=\underset{c \in y}{arg\ min}R(c|x)h∗(x)=c∈yargmin​R(c∣x)
其中h∗h*h∗称为贝叶斯最优分类器,与之对应的总体风险R(h∗)R(h*)R(h∗)称为贝叶斯风险。1−R(h∗)1-R(h^*)1−R(h∗)反映了分类器所能达到的最好性能,即通过机器学习所产生的模型精度的理论上限。
若R(c∣x)R(c|x)R(c∣x)是最小化分类错误率,则误判损失λij\lambda_{ij}λij​可表示为:
λij={0,i=j1,otherwise\lambda_{ij}=\begin{cases} 0, & i =j \\ 1 , & otherwise \end{cases}λij​={0,1,​i=jotherwise​
此时条件风险表示为:R(c∣x)=1−P(c∣x)R(c|x)=1-P(c|x)R(c∣x)=1−P(c∣x)
于是,最小化分类错误率的贝叶斯最优分类器为:
h∗(x)=argmaxc∈yP(c∣x)h^*(x)=\underset{c\in y}{arg \ max}P(c|x)h∗(x)=c∈yargmax​P(c∣x)
即对每个样本xxx,选择能使后验概率P(c∣x)P(c|x)P(c∣x)最大的类别标记。

【贝叶斯模型的解释】

以上内容已经对问题解释的很清楚了,如果想要对样本进行分类,我们需要得到最大的P(c∣x)P(c|x)P(c∣x),但是对于一般的情况下,直接求解,很难求出,所以一般借助贝叶斯定理,从侧面进行求解:
P(c∣x)=P(c)P(x∣c)P(x)P(c|x)=\frac{P(c)P(x|c)}{P(x)}P(c∣x)=P(x)P(c)P(x∣c)​
P(c∣x)P(c|x)P(c∣x)叫后验概率,也就是我们要计算的后验概率,知道样本,计算这个样本属于某个类别的概率,概率最大的那个类别是最可能正确的类别。
P(c)P(c)P(c)是类“先验”概率。
P(x∣c)P(x|c)P(x∣c)是条件概率,也就是在类别c的条件下,出现样本x的可能性。
对于每个样本xxx,其P(x)=x的样本数总样本数P(x)=\frac{x\text{的样本数}}{\text{总样本数}}P(x)=总样本数x的样本数​为很定的数值(在不考虑特征属性的情况下,如此表示),所以计算P(c∣x)P(c|x)P(c∣x)的难点在于求解P(x∣c)P(x|c)P(x∣c)或称之为“似然函数”。
求解类别ccc的类条件概率P(x∣c)P(x|c)P(x∣c)(似然函数)有两种方式实现:

  • 极大似然估计
  • 朴素贝叶斯分类器

三、后验概率的R计算

案例:采用西瓜数据集3.0进行举例

色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜
青绿 蜷缩 浊响 清晰 凹陷 硬滑 0.697 0.46 是
乌黑 蜷缩 沉闷 清晰 凹陷 硬滑 0.774 0.376 是
乌黑 蜷缩 浊响 清晰 凹陷 硬滑 0.634 0.264 是
青绿 蜷缩 沉闷 清晰 凹陷 硬滑 0.608 0.318 是
浅白 蜷缩 浊响 清晰 凹陷 硬滑 0.556 0.215 是
青绿 稍蜷 浊响 清晰 稍凹 软粘 0.403 0.237 是
乌黑 稍蜷 浊响 稍糊 稍凹 软粘 0.481 0.149 是
乌黑 稍蜷 浊响 清晰 稍凹 硬滑 0.437 0.211 是
乌黑 稍蜷 沉闷 稍糊 稍凹 硬滑 0.666 0.091 否
青绿 硬挺 清脆 清晰 平坦 软粘 0.243 0.267 否
浅白 硬挺 清脆 模糊 平坦 硬滑 0.245 0.057 否
浅白 蜷缩 浊响 模糊 平坦 软粘 0.343 0.099 否
青绿 稍蜷 浊响 稍糊 凹陷 硬滑 0.639 0.161 否
浅白 稍蜷 沉闷 稍糊 凹陷 硬滑 0.657 0.198 否
乌黑 稍蜷 浊响 清晰 稍凹 软粘 0.36 0.37 否
浅白 蜷缩 浊响 模糊 平坦 硬滑 0.593 0.042 否
青绿 蜷缩 沉闷 稍糊 稍凹 硬滑 0.719 0.103 否

其中类先验概率\(P(c)\)为:

\[P(\text{好瓜=是})=\frac{8}{17}\approx0.471 \]

\[P(\text{好瓜=否})=\frac{9}{17}\approx0.529 \]

然后,每个属性的条件概率\(P(x_i|c)\):

\[P_\text{青绿|是}=P(\text{色泽=青绿|好瓜=是})=\frac{3}{8}=0.375 \]

\[P_\text{青绿|否}=P(\text{色泽=青绿|好瓜=否})=\frac{3}{9}=0.333 \]

\[P_\text{蜷缩|是}=P(\text{根蒂=蜷缩|好瓜=是})=\frac{5}{8}=0.625 \]

\[P_\text{蜷缩|否}=P(\text{根蒂=蜷缩|好瓜=否})=\frac{3}{9}=0.333P \]

\[P_\text{浊响|是}=P(\text{敲声=浊响|好瓜=是})=\frac{6}{8}=0.750P \]

\[P_\text{浊响|否}=P(\text{敲声=浊响|好瓜=否})=\frac{4}{9}=0.444 \]

\[P_\text{清晰|是}=P(\text{纹理=清晰|好瓜=是})=\frac{7}{8}=0.875 \]

\[P_\text{清晰|否}=P(\text{纹理=清晰|好瓜=否})=\frac{2}{9}=0.222 \]

\[P_\text{凹陷|是}=P(\text{脐部=凹陷|好瓜=是})=\frac{6}{8}=0.750 \]

\[P_\text{凹陷|否}=P(\text{脐部=凹陷|好瓜=否})=\frac{2}{9}=0.222 \]

\[P_\text{硬滑|是}=P(\text{触感=硬滑|好瓜=是})=\frac{6}{8}=0.750 \]

\[P_\text{硬滑|否}=P(\text{触感=硬滑|好瓜=否})=\frac{6}{9}=0.667 \]

\[p_{\text{密度:0.697|是}}=p(\text{密度=0.697|好瓜=是})=\frac{1}{\sqrt{2\pi}0.129}\exp\left(-\frac{(0.697-0.574)^2}{2\cdot 0.129^2}\right)\approx1.959 \]

\[p_{\text{密度:0.697|否}}=p(\text{密度=0.697|好瓜=否})=\frac{1}{\sqrt{2\pi}0.195}\exp\left(-\frac{(0.697-0.496)^2}{2\cdot 0.195^2}\right)\approx1.203 \]

\[p_{\text{含糖:0.460|是}}=p(\text{含糖率=0.460|好瓜=是})=\frac{1}{\sqrt{2\pi}0.101}\exp\left(-\frac{(0.460-0.279)^2}{2\cdot 0.101^2}\right)\approx0.788 \]

\[p_{\text{含糖:0.460|否}}=p(\text{含糖率=0.460|好瓜=否})=\frac{1}{\sqrt{2\pi}0.108}\exp\left(-\frac{(0.460-0.154)^2}{2\cdot 0.108^2}\right)\approx0.066 \]

于是,根据朴素贝叶斯公式可得:

\[P(\text{好瓜=是})\times P_\text{青绿|是} \times P_\text{蜷缩|是}\times P_\text{浊响|是}\times P_\text{清晰|是}\times P_\text{凹陷|是}\times P_\text{硬滑|是}\times p_{\text{密度:0.697|是}}\times p_{\text{含糖:0.460|是}}\approx0.063 \]

\[P(\text{好瓜=否})\times P_\text{青绿|否} \times P_\text{蜷缩|否}\times \text{浊响|否}\times P_\text{清晰|否}\times P_\text{凹陷|否}\times P_\text{硬滑|否}\times p_{\text{密度:0.697|否}}\times p_{\text{含糖:0.460|否}}\approx 6.80 \times10^{-5} \]

由于\(0.063>6.80\times10^{-5}\),因此,预测结果为“好瓜”。

问题:
若某个属性值在训练集中没有与某个类同时出现过,则直接基于朴素贝叶斯进行估计,很有很能出现错误的估计:例如:对一个“敲声=清脆”的测试例,有

\[P(\text{清脆|是})=P(\text{敲声=清脆|好瓜=是})=\frac{0}{8}=0 \]



参考文献

风险型决策分析及其python实现
贝叶斯——朴素贝叶斯算法以及案例代码(Python版)