概率和统计学作为数学中重要的一支,同样在机器学习中占据中重要的地位。读者们将在本公众号接下来的文章里陆续接触到贝叶斯分类器贝叶斯网络概率图模型)、蒙特卡罗方法隐马尔可夫链。今天先来捏一个最软(简单)柿子—贝叶斯分类器。

贝叶斯分类算法是统计学中的一种分类方法,它是一类利用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯(NaïveBayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据中,而且方法简单、分类准确率高、速度快。本文内容包括

  • 贝叶斯定理
  • 朴素贝叶斯分类器及举例
  • 正态贝叶斯分类器及举例
  • sikit-learn实战

 

一 贝叶斯定理

首先从基本定理入手,公式如下:

贝叶斯分类器_贝叶斯分类器

其中:P(A),P(B)分别为事件A,B发生的概率;P(B|A) 为事件A已经发生的前提下,事件B发生的概率;P(A|B) 为事件B已经发生的前提下,事件A发生的概率。

注,经常会有文章提到先验概率后验概率似然概率,他们的意思可以这么理解:

1)先验——根据若干年的统计(经验)或者气候(常识),某地方下雨的概率;
2)似然——下雨(果)的时候有乌云(因/证据/观察的数据)的概率,即已经有了果,对证据发生的可能性描述;
3)后验——根据天上有乌云(原因或者证据/观察数据),下雨(结果)的概率;


在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。“似然性”和“概率”意思相近,都是指某种事件发生的可能性。在统计学中,似然性”和“概率”又有明确的区分,概率用于在已知一些参数的情况下,预测接下来的观测所得到的结果,而似然性则是用于在已知某些观测所得到的结果时,对有关事物的性质的参数进行估计。

一般认为,在上述公式中,P(A),P(B)是先验概率,P(B|A)是似然概率,P(A|B) 是后验概率。

推导贝叶斯公式很容易,参看下面公式,公式后面两项两边移动一下即可得到:

贝叶斯分类器_贝叶斯分类器_02

其中,P(AB) 为事件A和B同时发生事的概率,P(B|A) 是似然概率。
栗子就不举了,再白话复述一下贝叶斯公式:

事件A在事件B发生的前提下的条件概率等于事件AB同时发生的概率除以事件B的概率也等于事件B在事件A发生的前提下的条件概率乘以事件A的概率再除以事件B的概率。

二 朴素贝叶斯分类器

先敲下黑板:

  • 贝叶斯分类器属于有监督学习,它需要标签化的训练数据集进行概率计算;
  • 所谓“朴素”,是假定所有输入事件之间是相互独立。进行这个假设是因为独立事件间的概率计算更简单。

进入正题,接下来看下朴素贝叶斯分类的原理。

因为通常特征向量都是由多个条件组成,所以原始的公式看起来要比基本贝叶斯公式复杂一丢丢:

贝叶斯分类器_先验概率_03

其中 y 为分类的类别,x={x1,... ,xn} 为一个待分类项,xi为特征向量的分量。

假设 xi 之间都是相互独立的,可以推导得出:

贝叶斯分类器_机器学习_04

从而将原始的贝叶斯公式简化为:

贝叶斯分类器_正态分布_05

对计算而言,P(x1, … , xn) 代表该样本出现的概率,在计算中认为是常数,可以忽略不计,故而求最大后验估计问题可简化为求极大似然估计问题,即

贝叶斯分类器_机器学习_06

利用这个分类规则依次计算待判别样本属于全部分类类别的概率值,得到其中最大的值

贝叶斯分类器_贝叶斯分类器_07

这个概率值最大的类别即可为分类结果。

举例时间

公式稍微有点抽象,就着个栗子理解下,有苹果样本集如表:

贝叶斯分类器_正态分布_08

现在在超市里拿到一个苹果特征如下:

贝叶斯分类器_正态分布_09

要不要买取决它是不是个好果,让贝叶斯分类器来计算下。

先分别统计先验概率:

P(好果=是)= 4/8,P(好果=否) = 4/8

分别统计条件概率:
P(大小=大|好果=是) = 3/4,P(颜色=红色|好果=是) = 3/4,P(形状=圆形|好果=是) = 3/4,P(大小=大|好果=否) = 1/4,P(颜色=红色|好果=否) = 1/4,P(形状=圆形|好果=否) = 1/4

利用贝叶斯公式计算:

P(好果=是|大小=大,颜色=红色,形状=圆形) = P(好果=是) ×P(大小=大|好果=是) ×P(颜色=红色|好果=是) × P(形状=圆形|好果=是)= 4/8 ×3/4 ×3/4 ×3/4 = 0.211

P(好果=否|大小=大,颜色=红色,形状=圆形) = P(好果=否) ×P(大小=大|好果=否) ×P(颜色=红色|好果=否) ×P(形状=圆形|好果=否)= 4/8 × 1/4 ×1/4 × 1/4= 0.008

因为0.211 大于 0.008,所以这个苹果是好果

三 高斯贝叶斯分类器

接下来,进入更复杂一点的高斯贝叶斯分类器。高斯分布(正态分布)是一个常用分布,其正态密度函数易于分析,而且正态分布有很多实际的应用场景。

还是先来看公式,可以证明,正态分布的贝叶斯估计也符合正态分布,对多变量正态分布,有公式

贝叶斯分类器_机器学习_10

其中,

贝叶斯分类器_机器学习_11

表示属于第i个分类数学期望。|Ci|表示第i个分类所对应的n×n的协方差矩阵 C的行列式的值, 其值计算公式是

贝叶斯分类器_正态分布_12

由上一节的推导中我们知道,似然度函数:

贝叶斯分类器_正态分布_13

由贝叶斯规律可知,后验概率正比于先验概率与似然度的乘积,但在有些情况下,比如分类较少或者维度较高时,先验概率P(y)影响较小,可以忽略不予考虑,所以最大后验问题就变为极大似然问题:

贝叶斯分类器_贝叶斯分类器_14

此处我们是要进行数值比较,求得最大值,为了计算方便,我们对多变量正态分布的密度函数取对数有:

贝叶斯分类器_贝叶斯分类器_15

其中nln(2π) 为常数忽略,上述求最大值问题可以转化为求对数似然函数极小值:

贝叶斯分类器_正态分布_16

这里需要计算 μi 和 Ci ,由定义可知:

贝叶斯分类器_先验概率_17

举例时间

下表是某国人体特征指标的一组统计资料:

贝叶斯分类器_先验概率_18

表中的样本一共有8个,分为男和女两类,各有类别样本数各4个。

先计算男人的数学期望向量μ男的分量:

贝叶斯分类器_正态分布_19

从而有,

贝叶斯分类器_机器学习_20

同理计算 μ女,

贝叶斯分类器_先验概率_21

然后计算 C男,

贝叶斯分类器_正态分布_22

贝叶斯分类器_正态分布_23

贝叶斯分类器_正态分布_24

贝叶斯分类器_正态分布_25

所以有,

贝叶斯分类器_贝叶斯分类器_26

同理计算 C女,

贝叶斯分类器_正态分布_27

计算行列式和其逆矩阵,

贝叶斯分类器_贝叶斯分类器_28

贝叶斯分类器_机器学习_29

则对数似然函数(即分类器)为,

贝叶斯分类器_先验概率_30

贝叶斯分类器_正态分布_31

利用上面的分类器进行分类。假设已知某人身高6英尺,体重130磅,脚长8英寸,则预测样本向量为

贝叶斯分类器_正态分布_32

带入上述ln(L男)和ln(L女) 得到,

贝叶斯分类器_先验概率_33

因较小值的概率反而大,所以这个人可能是男人。

四 sikit-learn实战

Sklearn提供了四种朴素贝叶斯分类器:Gaussian Naïve Bayes, Multinomial Naïve Bayes, Complement Naïve Bayes和Bernoulli Naïve Bayes。可以根据样本的概率分布特点选择相应的分类器。 下图为将上文中的例子分别用Gaussian和 Multinomial 朴素分类器进行分类预测的示例,更多介绍可以参考官方链接

https://scikit-learn.org/stable/modules/naive_bayes.html

贝叶斯分类器_机器学习_34

总结

本文介绍了贝叶斯定理和朴素贝叶斯正态贝叶斯的一般计算,并做了举例说明。贝叶斯分类器在机器学习下算法中相对简单,但是实用性极高,因为概率思维实际上是人类一种典型的思考方式。在这一大类概率为基础的机器学习算法中,贝叶斯定理尤为重要,ARGO也会将来给大家更多数学方面的补充。

最后帮作者宣传一下:

贝叶斯分类器_先验概率_35