机器学习西瓜书(周志华)第七章 贝叶斯分类器

1. 贝叶斯决策论

       贝叶斯决策论是概率框架下实施决策的基本方法。
       对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率误判损失来选择最优的类别标记。

       贝叶斯判定准则:最小化总体风险(误判损失之和最小),只需在每个样本上选择使条件风险R(cx)R(c|x)最小的类别标记,即h(x)=argminR(cx)h(x)=argminR(cx)h∗(x)=argminR(c|x)h∗(x)=argminR(c|x)
       R(cx)R(c|x)为样本x分类为c的期望损失。
R(cix)=j=1NλijP(cjx)R(c_i|x)=∑_{j=1}^Nλ_{ij}P(c_j|x)

       P(cx)P(c|x)为每个样本在概率分布中被分成各个标签的概率。若λijλ_{ij}为1,则R(cx)R(c|x)为1。λijλ_{ij}是将一个真实标记为cjc_j的样本误分类为cic_i的损失。

       令λij={0,if   i = j  ;1,otherwise λ_{ij}= \begin{cases} 0, & \text {if \; i = j\;;} \\ 1, & \text{otherwise} \end{cases}
      则 R(cx)=1P(cx)R(c|x)=1−P(c|x)

      机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率P(cx)P(c|x)。当然目前的一些机器学习技术无需准确计算出后验概率就能准确进行分类。
      主要有两种策略:
“判别式模型”:给定x,可通过直接建模P(cx)P(c|x)来预测c。比如:LR,决策树,BP神经网络,支持向量机等
“生成式模型”:先得到联合概率分布P(cx)P(c,x),然后再得到后验概率P(cx)P(c|x)。比如:朴素贝叶斯,高斯混合模型(GMM),LDA,隐马尔科夫模型(HMM)。

       贝叶斯定理:
P(cx)=P(c,x)P(x)=P(c)P(xc)P(x)P( c | x ) =\frac{ P( c, x )} { P( x )} = \frac{P( c )P( x | c ) }{ P( x )}
      将求后验概率P(c|x)的问题转变为求先验概率P(c)和条件概率P(x|c)。

  • P( c )类先验概率 P(c) 表达了样本空间(属性张成的空间)中各类样本所占的比例,根据大数定律,当训练集包含充足的独立同分布样本时,训练集属性张成空间可近似为样本空间,P© 可通过训练集中各类样本出现的频率来进行估计。
  • P( x | c )因为对于类条件概率 P( x | c ) 来说,由于它涉及关于 x 所有属性的联合概率,直接根据样本出现的频率来估计将会遇到严重的困难(想象一下,d 个属性就会有 2 的 d 次方种可能的取值,在现实中,这个种类数往往大于训练样本)。针对这种情况,类条件概率的一种常用策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。对于条件概率 P( x | c ),我们可以采用极大似然估计来根据数据采样来估计概率分布参数。对参数 t 进行极大似然估计,就是试图在 t 所有可能的取值中,找到一个能使数据出现的“可能性”最大的值。

概率模型的训练过程就是参数估计过程;对于参数估计,统计学界两派分别提供了不同的解决方案

  • 频率主义学派认为参数虽然未知,但却是客观存在的固定值,可通过优化似然函数等准则来确定参数值。
  • 贝叶斯学派则认为参数是未观察到的随机变量,本身也存在分布,可假定参数服从一个先验分布,然后基于观测到的数据来计算参数的后验分布

1.1 先验分布

       对未知参数x的先验信息用一个分布形式p(x)来表示,此分布p(x)称为未知参数x的先验分布.(即在实验前通过已知信息知道的分布)可以理解为对某个原因的经验推断。

       对于一个未知参数,在抽取样本之前就已经知道了一些关于该参数的信息。我们知道的途径可能来源于生活经验,自然规律等等。

       例子:来源 https://blog.****.net/lsgqjh/article/details/79168156

       比如,测量自己的体重,在测量之前就可以推断出自己不会超过120斤,也不会少于90斤。这个推断可以理解为我们的生活经验所得。

       比如测量某地的重力加速度,测量之前根据自然规律,就知道该地的重力加速度必然在9.8附近。这就是根据自然规律得到的先验信息。再根据自然规律,知道任何一个地方的重力加速度与标准不会相差0.1,这就是先验分布。可以写成G~(9.8,0.01),这就是先验分布。

       老王会走路,骑自行车,或者开车去某个地方,假设老王是个健身达人,且大家都知道,那么老王开车去的可能性就较小,跑步的可能性比较大,这就是根据我们的常识得到的先验分布。

1.2 后验分布

      知道事情的结果,然后根据结果推测原因,即结果是由某个原因导致的概率就是后验概率。p(原因|结果)

      例子:

      隔壁老王要去10公里外的一个地方办事,他 可以选择走路,骑自行车或者开车,并花费了一定时间到达目的地。在这个事件中,可以把交通方式(走路、骑车或开车)认为是原因,花费的时间认为是结果。若老王花了一个小时的时间完成了10公里的距离,那么很大可能是骑车过去的,当然也有较小可能老王是个健身达人跑步过去的,或者开车过去但是堵车很严重。若老王一共用了两个小时的时间完成了10公里的距离,那么很有可能他是走路过去的。若老王只用了二十分钟,那么很有可能是开车。这种先知道结果,然后由结果估计原因的概率分布,p(交通方式|时间),就是后验概率。

1.3 似然估计

      与后验分布相反,后验分布根据结果推测原因,而似然估计则是根据原因推测该原因导致结果发生的概率。
      比如:p(xθc)p(x|\theta_c),利用训练集D估计参数 θc\theta_c,对 θc\theta_c 进行极大似然估计,就是去寻找能最大化似然 p(Dcθc)p(D_c|\theta_c) 的参数 θc\theta_c,直观上看,极大似然估计试图在 θc\theta_c 所有可能的取值(原因)中,找到一个能使数据出现(结果)的可能性最大的值。

      例子:

      老王决定步行过去,那么很大可能10公里的距离大约需要两个小时;较小可能是老王平时坚持锻炼,跑步过去用了一个小时;更小可能是老王是个猛人,40分钟就到了。老王决定骑车过去,很可能一个小时就能到;较小可能是老王那天精神不错加上单双号限行交通很通畅,40分钟就到了;还有一种较小可能是老王运气很差,连着坏了好几辆共享单车,花了一个半小时才到。老王决定开车过去,很大可能是20分钟就到了,较小可能是那天堵车很严重,磨磨唧唧花了一个小时才到。这种先确定原因,根据原因来估计结果的概率分布,p(时间|交通方式),就是似然估计。

      补充:

      如果老王去了那个地方好多次,我们只搜集到了老王这么多次花费的时间的信息,那么关于花费时间的概率分布 p(时间) 就叫evidence.

1.4 四大概率在贝叶斯分类中指代含义

      贝叶斯分类器直观看就是一个由在样本集D上学习到的后验概率和likelihood组成的计算公式,在测试阶段,将输入测试样本的feature带入可以计算出各类的分类confidence(confidence即后验)。

1. 问题参数:

  • X是特征、是属性、是对待分类物体的观测与描述;X属于{x1:有无胡须,x2:有无喉结,x3:是否穿了裙子,……}
  • Y是分类结果;Y属于{0:男,1:女}

2. 问题描述:
      给定一张图片,图中有一个人,现在做一个二分类;

3. 四大概率:

  • 先验 P(Y)P(Y)P(0)=0.5P(0)= 0.5,先于看到图片就判断分类,反映的是被分类事物的自然规律,可有多次试验用大数定律逼近;
  • Evidence(依据)P(X)P(X)P(x1=1)=0.2P(x_1=1)= 0.2P(X)P(X)是对于各特征的一个分布,与类别Y无关,是各特征自然出现的概率(即 P(x1=1)=0.2P(x_1=1)= 0.2 是指,没看到此人但估计其有胡子的概率是0.2);顾名思义,这些特征是用来进行分类的判断依据、证据;
  • 后验 P(Y|X):P(0x1=0)=0.7P(0|x_1=0)= 0.7,看到图片之“后”,具有图中此人所展示的这些特征的一个人是男是女的概率(P(0x1=0)=0.7P(0|x_1=0)= 0.7即看到一个有胡子的这个人是男人的概率是0.7);
  • Likelihood(似然)P(XY)P(X|Y)P(x1=00)=0.66P(x_1=0|0)=0.66,被告知图中将会是一个男人,那么这个人有胡子的概率是0.66;

       所谓“先”“后”验,是指在进行对物质性质特征的验视之前或者后(看到图片之前或后),来做分类判断;即“分类决断”与“验视特征”发生的先后顺序。

       所谓likelihood,是指在得知物体类别之后,再对个特征出现的概率进行修正和re-evaluate。区别于evidence,evidence是不知类别,直接看特征分布。

       机器学习的最终目的,是学习后验概率!!!即,在训练集上学习捕捉后验概率的分布。在测试时,一个新样本输入在验视其feature之后,分析分类结果的概率,实现对分类结果的预测!!
注意:
      最大似然的参数估计方法,虽然能使类条件概率估计变得相对简单,但是其估计的准确度严重依赖于所假设的概率分布形式是否符合潜在的真实数据分布。

1. 朴素贝叶斯

基于贝叶斯公式来估计后验概率P(cx)P(c|x)的主要困难在于:类条件概率P(xc)P(x|c)是所有属性上的联合概率,为了避免难以从有限的训练集样本直接估计而得,朴素贝叶斯分类器采用了“属性条件独立性假设”(attribute conditional independence assumption),即假设每个属性独立地对分类结果产生影响,则
P(cx)=P(xc)P(c)P(x)=P(c)P(x)i=1dP(xic)P(c|x)=\frac{P(x|c)P(c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^{d}P(x_{i}|c)

机器学习西瓜书(周志华)第七章 贝叶斯分类器

若某个属性值在训练集中没有与某个类同时出现过,则直接会导致该类的后验概率为0,为了避免其他属性携带的信息被训练集中未出现的属性值“抹去”,在估计概率值时通常要进行“平滑”,常用“拉普拉斯修正”具体来说,令NN表示训练集DD中可能的类别数,NiN_{i}表示第i个属性可能的取值数。
P(c)=Dc+1D+NP(c)=\frac{|D_{c}|+1}{|D|+N}
P(xic)=Dc,xi+1Dc+NiP(x_{i}|c)=\frac{|D_{c,x_{i}}|+1}{|D_{c}|+N_i}

拉普拉斯修正的实质:假设类别值和属性均匀分布。额外引入的关于数据的先验。
拉普拉斯修正是为了避免因训练集样本不充分导致概率估值(似然估计)为零的问题,并且在训练集变大时,修正过程中引入的数据先验的影响也会忽略不计,使得估值逐渐趋向实际概率值。
在现实中朴素贝叶斯有多种使用方法:

  • 若任务对于预测速度要求很高,可以将分类器所涉及的概率估值事先封装
  • ,在测试时直接查表使用。
  • “懒惰学习”:若任务数据更替频繁,在收到预测请求后再根据当前数据集进行概率估值
  • “增量学习”:若数据不断增加,则可在现有估值基础上,仅对新增样本的属性值所涉及的概率估值进行计数修正。

公式参考: [https://blog.****.net/weixin_41725746/article/details/90483885#3_457]

7. 课后练习参考答案

[https://blog.****.net/icefire_tyh/article/details/52065224]

参考文献:
[1] [统计学习-李航]
[2] [机器学习西瓜书-周志华]
[3] [https://blog.****.net/bitcarmanlee/article/details/78819025]