概率和统计学作为数学中重要的一支,同样在机器学习中占据中重要的地位。读者们将在本公众号接下来的文章里陆续接触到贝叶斯分类器、贝叶斯网络(概率图模型)、蒙特卡罗方法、隐马尔可夫链。今天先来捏一个最软(简单)柿子—贝叶斯分类器。
贝叶斯分类算法是统计学中的一种分类方法,它是一类利用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯(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) 是后验概率。
推导贝叶斯公式很容易,参看下面公式,公式后面两项两边移动一下即可得到:
其中,P(AB) 为事件A和B同时发生事的概率,P(B|A) 是似然概率。
栗子就不举了,再白话复述一下贝叶斯公式:
事件A在事件B发生的前提下的条件概率等于事件AB同时发生的概率除以事件B的概率,也等于事件B在事件A发生的前提下的条件概率乘以事件A的概率再除以事件B的概率。
二 朴素贝叶斯分类器
先敲下黑板:
- 贝叶斯分类器属于有监督学习,它需要标签化的训练数据集进行概率计算;
- 所谓“朴素”,是假定所有输入事件之间是相互独立。进行这个假设是因为独立事件间的概率计算更简单。
进入正题,接下来看下朴素贝叶斯分类的原理。
因为通常特征向量都是由多个条件组成,所以原始的公式看起来要比基本贝叶斯公式复杂一丢丢:
其中 y 为分类的类别,x={x1,... ,xn} 为一个待分类项,xi为特征向量的分量。
假设 xi 之间都是相互独立的,可以推导得出:
从而将原始的贝叶斯公式简化为:
对计算而言,P(x1, … , xn) 代表该样本出现的概率,在计算中认为是常数,可以忽略不计,故而求最大后验估计问题可简化为求极大似然估计问题,即
利用这个分类规则依次计算待判别样本属于全部分类类别的概率值,得到其中最大的值:
这个概率值最大的类别即可为分类结果。
举例时间
公式稍微有点抽象,就着个栗子理解下,有苹果样本集如表:
现在在超市里拿到一个苹果特征如下:
要不要买取决它是不是个好果,让贝叶斯分类器来计算下。
先分别统计先验概率:
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,所以这个苹果是好果
三 高斯贝叶斯分类器
接下来,进入更复杂一点的高斯贝叶斯分类器。高斯分布(正态分布)是一个常用分布,其正态密度函数易于分析,而且正态分布有很多实际的应用场景。
还是先来看公式,可以证明,正态分布的贝叶斯估计也符合正态分布,对多变量正态分布,有公式
其中,
表示属于第i个分类数学期望。|Ci|表示第i个分类所对应的n×n的协方差矩阵 Ci 的行列式的值, 其值计算公式是
由上一节的推导中我们知道,似然度函数:
由贝叶斯规律可知,后验概率正比于先验概率与似然度的乘积,但在有些情况下,比如分类较少或者维度较高时,先验概率P(y)影响较小,可以忽略不予考虑,所以最大后验问题就变为极大似然问题:
此处我们是要进行数值比较,求得最大值,为了计算方便,我们对多变量正态分布的密度函数取对数有:
其中nln(2π) 为常数忽略,上述求最大值问题可以转化为求对数似然函数极小值:
这里需要计算 μi 和 Ci ,由定义可知:
举例时间
下表是某国人体特征指标的一组统计资料:
表中的样本一共有8个,分为男和女两类,各有类别样本数各4个。
先计算男人的数学期望向量μ男的分量:
从而有,
同理计算 μ女,
然后计算 C男,
所以有,
同理计算 C女,
计算行列式和其逆矩阵,
则对数似然函数(即分类器)为,
利用上面的分类器进行分类。假设已知某人身高6英尺,体重130磅,脚长8英寸,则预测样本向量为
带入上述ln(L男)和ln(L女) 得到,
因较小值的概率反而大,所以这个人可能是男人。
四 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
总结
本文介绍了贝叶斯定理和朴素贝叶斯正态贝叶斯的一般计算,并做了举例说明。贝叶斯分类器在机器学习下算法中相对简单,但是实用性极高,因为概率思维实际上是人类一种典型的思考方式。在这一大类概率为基础的机器学习算法中,贝叶斯定理尤为重要,ARGO也会将来给大家更多数学方面的补充。
最后帮作者宣传一下: