机器学习40讲_30_28_最简单的概率图朴素贝叶斯
你好,我是王天一。
今天我和你分享的主题是最简单的概率图朴素贝叶斯。
从今天起呢,我们将进入概率图模型的模块,以贝斯的角度重新来审视,积极学习。
在机器学习任务当中,输入和输出之间并不是简单的一对一的决定性的关系。
它们中间呢通常存在着一些可见或者不可见的这样的中间变量要计算输出的这个概率分布的话,就得把这些中间变量纳入到建模的框架当中。
想要简洁明快的表达,多个变量之间复杂的相关关系,呢图模型无疑是理想的选择。
将图模型和概率模型结合起来,那就是这个模块的主题,也就是概率图模型。
在人工智能基础课当中呢,我曾用简短的篇幅粗略的介绍了概率图模型,它的概念还有分类。
这次呢我们从实例出发,看一看最简单的概率图模型,也就是朴素贝叶斯分类器,并以它呢作为从统计学习到概率图的一个过渡。
还记得朴素维叶斯的原理吗?回忆一下普苏贝叶斯呢,它是利用后验概率最大化来判定数据所属的类别。
它的朴素之处呢在于条件独立性的引入。
条件独立性,假设它保证了所有属性之间相互独立,互不影响,每个属性呢是独立的对分类结果发生作用。
这样的话类条件概率就变成了属性条件概率的乘积,这在概率图当中呢体现为条件独立关系。
如果将一个朴素贝叶斯模型给它画成有向图的话,那它的类别信息会指向所有的属性。
而任何两个属性之间呢都没有这个箭头的志向。
点击文稿,你可以看到普素贝叶斯它的对应的概率图模型。
普苏贝叶斯的好处在于呢,可以将属性和类的联合分布表示成一个关于类的先验分布和一组和属性相关的条件。
概率分布的乘积,也就是用类的先验乘以每个属性。
关于这个类的条件概率,这过程呢在概率图模型当中,我们给它起一个啊专门的名称,叫做因子分解。
它的含义呢在这个普索贝斯分类器里,它的含义是属性XI和其他所有属性,关于类别外都是条件独立的。
将这个条件、独立特性和前面的示意图结合起来,就不难发现,因子分解它的模块化特性。
当一个新的属性出现的时候,整体上的联合分布肯定是会发生变化的。
但是利用因子分解呢生成新的联合分布,我只需要添加新属性,关于这个类的一个条件分布,而无需呢对原始分布的其他参数做出调整。
在概率图模型当中,这种操作就是体现为添加一条邮向边和。
它对应的节点这么简单,普苏贝斯它是通过因子分解来计算样本,属于每个类别的后验概率。
反过来呢它也可以依赖于因子分解来生成新的数据。
因而呢属于生成模型的范畴。
在生成样本的时候,普苏贝叶斯首先按照类的鲜验分布抽取出一个类别,再按照类别之下的条件,概率分布生成不同属性的趋值。
在解决分类问题的时候呢,朴素贝叶斯在判别模型上的对应就是逻辑回归。
它体现出来的是和朴素贝叶斯迥异的一个思路。
那逻辑回归它的计算目标是分类边界。
啊,我要找到两个类别之间的这个边界。
这个边界呢又是各个属性的线性组合。
样本当中,每个属性的取值共同决定了这个样本的类别。
那么从脱模型的角度观察呢逻辑回归,它可以看成是普素贝叶斯的反转普素卫。
四是类别变量外伸出若干个箭头,指向每一个属性变量XI.那逻辑回归呢就是把这个箭头的方向调过来,通过每个属性变量XI都伸出一个箭头,共同指向这个类别变量y这意味着分类的输出啊,它会依赖于属性的取值。
根据这种依赖关系计算出来的,就是在不同的属性取值之下啊,分类结果的可能性也就是条件概率PY杠x普苏贝斯的运算流程。
在上一季当中啊已经有过介绍,就在这里呢。
我简单总结一下,先验分布就是训练数据集上不同类别的数据所占的比例。
那每一个条件概率分布呢可以利用最大自然估计来计算计算方式。
就是统计在同一个类别的所有数据当中,属性为特定值的数据所占的比例有多少。
那么假定x一属性有两个取值,那么我就分别统计这个x一等于零和x一等于一占不同类别的比例。
这里呢得到的就是条件概率。
这种方法呢非常简单啊,也是普苏贝叶斯它的一主要优点。
但这种方式有一个潜在的问题。
当样本容量比较小的时候,某些属性的取值可能压根就没有出现过。
啊,比方说我这个属性x一它都等于零啊,没有等于一这个这样的样本。
这时候呢我在计算这个条件概率的时候啊,x一等于一,这时计算出来的自然概率就等于零,这显然会和真实情况产生一个偏差。
另外一方面,如果所有的数据在某一个属性上取值都相同的话,当遇到这个属性上的这个取值发生变化的样本的时候呢,算法也会不知道如何处理。
当了这两种潜在的问题,在本质上是一样要解决这个问题的话,传统的方法是在条件概率分布计算的时候引入拉普拉斯平滑。
而从纯粹的贝叶斯方法的角度来看呢,拉布拉斯平滑的作用就是对隐含的参数给它引入一个鲜艳的分布。
在b列斯方法当中,参数的限验分布呢通常被设置为共轭间压。
那共外先案是什么意思呢?这是贝叶斯主义当中一个重要的概念,指的是先验概率和后验概率,也就是先验分布和后验分布,具有相同的形式。
回忆一下贝斯定理他的内容,贝斯蒂米相当于用似然概率对先验概率进行加权,从而呢得到后验概率。
当鲜验概率和给定的自然概率共轭的时候啊,也就是这个鲜验分布是共轭分布的时,计算出来的后验概率呢它和先验概率是服从同一个分布的。
我的先验是二项分布,那么后验也是二项分布啊,先验是高斯分布,后验也是高斯分布。
只不过呢两者的参数有所不同。
这呢就是引入共轭经验的一个好处。
它可以把新的概率分布的计算啊,也就是后验概率的计算转化成为新参数的计算啊,这显然是一个简化。
因为我不需要关注这个后验的形式,它天生的就和先验一致。
区别呢只是在于参数的不同。
这样的一个简化会大大的降低贝叶斯方法它的运算的复杂度。
那看到这儿的话,你是否想到另一个相似的概念呢? Google验啊,它类似于线性外轴语的特征向量,进一步推广的就是信号理论当中的特征函数。
这个空格签验呢相当于定义出一个函数空间,在这个空间之上作为泛含算子的供荷实验,作用在概率分布上啊,也就是作用在似然概率的定义了一个从先验到后验的这个演化的过程,并且呢输入的间验和输出的后验具有相同的形式。
但需要说明的是,这很大程度上就是一种纯粹的用于简化运算的数学技巧,就是一个trick.共轭。
经验本身并不能够揭示出关于数据机制任何潜在的规律,也就是说纯粹是一个数学上的应用。
既然供荷鲜验啊,有这么容易计算的这个优点,那么如何找到合适的供荷鲜验就成了下一个问题。
可以证明,任何服从指数分布的这个似然函数都存在共和现验,所以工作经验还是比较普遍。
在多分类问题当中,每个样本都归属于多个类别当中的一个,而属于每个类别的概率之和,它等于一。
所以在这种情况下,类的经验分布可以看成是二项分布的推广,把它起个名字叫做多项分布,或者叫类别分布。
他最典型的代表就是掷骰子得到的分布,至少他总共有多种可能性呢六种。
那么对应着六个类别,这六个类别实际上就服从一个多项的分布。
那么在给定多项分布或者类别分布的条件之下,他的顾问经案是什么呢?是迪利克雷分布。
那么点击文稿,你可以看到伊利克雷分布的表达式。
那说完了迪迪克雷分布啊,我们还要回到这个普苏贝叶斯的模型当中。
利用因子分解之后的自然概率,对因子分解之后的鲜验概率进行加权。
啊,那么它的作用呢就是对鲜验分布的参数进行修正。
假定会不会鲜艳的这个迪迪克a分布,它的参数为n阿尔法i那么经过修正之后,这个参数就变成了阿发i加上NI.这个NI呢是每个类别当中的样本数目。
那么当这个阿巴i等于一的时候啊,这些酰胺就被等效成了拉普拉斯平滑的一个作用啊,也就是说我通过拉普拉斯进行平滑啊和引入一个共轭酰胺,两者是等效的。
下面这个例子呢给出了一个关于纯贝叶斯的这个朴素贝叶斯算法。
一个很好的说明他来自david baba的这个著作。
贝叶斯推理与机器学习是书中的历史练三。
那么这个例子呢是这样,科比的任务是判断一个人到底是英格兰人还是苏格兰人。
判断的依据呢?有五个二元属星,从上到下分别是爱吃奶油酥饼,不喜欢拉个啤酒,喝whisky喝粥和不看英格兰的足球比赛。
在训练数据当中,包括左侧的六个英格兰人和右侧七个苏格兰人的属性列表。
点击文稿,你可以看到这个列表。
那么现在问题来了,来了,一个新的五元组,x等于幺零幺幺零。
那这个人是苏格兰人,他的可能性有多大呢?点击文稿,你可以看到这个例子的这个训练集,直接用辅素倍测方法来求解。
这个问题呢比较简单,容易计算出来。
两个类鲜验概率分别是十三分之七和十三分之六,在每个类别之上又可以计算出相互独立的这个属性。
条件概率将所有这些概率带入到贝叶斯定理当中,就可以得到这个人是苏格兰人的概率是零点八零七六,你可以自己验算一下。
可是如果要用纯贝叶斯方法来解决这个问题的话,那就没那么简单了。
出于简化运算的目的呢,这个例子并没有给类分布设定限压,而是令属性。
关于类别的所有的条件概率都服从相互独立的比利克雷的线验分布啊,服从这个共荷线验。
由于敌迪克威分布呢是多项分布的共荷签验,而属性关于类别的二项分布又可以看成是多项分布的一个特例。
所以根据先验计算出来的这个后验概率呢,也会满足低皮格离分布,只是这个参数会有所调整。
这里面我们假定属性的条件概率表示当属性的类别为c的时候,第i个属性的取值为s的条件概率啊,我们把它写成一个表达式。
这表达式呢就对应着三个变量CIS.由于数据类别总共有两种属性的数目呢,有五个,每个属性又有两个可能的取值。
所以条件概率的总数就是二乘以五乘以二等于二十。
这么多个条件概率。
那每个条件概率都对应着一个无信息的均匀的迪滴格类分布。
它的超参数呢等于一。
根据这个迪利克雷分布的性质,我就可以对这个超参数进行更新,计算出后验概率的超算数,更新之后的超参数,或者说超参数的更新过程啊,我们可以给它解释一下。
在每个类别c中啊,我先来计算每个属性i等于这个值s出现的次数。
再将计算结果呢加在这个三元组所对应的原始的参数之上。
那比方说在c等于零的英格兰人当中,所有样本的i等于一,也就是第一个属性当中s等于零的样本有三个。
那么相应的这个超参数对应着c等于零,i等于一s等于零啊,这个超参数就被更新,成为三加一等于四。
这里边的一呢是共轭鲜验的超参数。
三呢是样本归类的这个数目,两个加一起就是后验概率的超参数。
更新完超参数之后啊,我可以来计算这个获验概率。
计算出来的化验概率呢将进一步的被用于新样本的备类。
这里面的数学推导呢复杂一些,在这儿呢我就不把它列出来了。
感兴趣的话你可以参考原书。
那么利用迪利克雷分布的数学性质,可以求出来新样本是苏格兰人的概率等于多少呢?等于零点七六四可以看出来啊,这略低于非贝叶斯方法所求出来的结果。
在SKN当中啊实现朴素贝叶斯分类器的是ni u base这样的一个模块。
由于前面例子当中的属性都是二值属性,所以呢我可以调用模块当中的banali NB类这样的一个类。
在使用这个类的时候呢,需要注意的是其中的参数阿尔法这参数呢默认取值是一点零。
什么含义呢?表示着我要对这个数据进行一个拉布拉斯平滑。
反过来,如果我把它设定为零的话,就是直接利用数据来进行计算。
那么结合我们前面的介绍呢,你可以发现让这个阿尔法等于一,实际上就是用纯贝叶斯的方法进行朴素贝叶斯的分类。
那么让阿巴等于零呢,就是用频率主义的方法进行库苏维叶斯的分类。
利用这个类句处理。
上面例子你会发现啊阿尔法等于零,得到的是一般普苏贝斯的结果。
阿尔法等于一呢得到的是贝斯,普苏贝斯的结果啊和我们前面的分析一致。
这也说明了拉布拉斯平滑的作用,实际上就是给类别和属性设定这个均匀分布的共轭鲜验。
今天呢我和你分享了普素贝叶斯方法,它的概率图表示以及贝叶斯方法当中共轭鲜验的概念包含着以下四个要点。
第一,普苏贝叶斯是最简单的概率图模型,具有巴散的星形结构。
第二,普苏贝斯能够计算属性和类别的联合分布,因而呢属于生成模型。
第三,共可先验,可以保证先验分布和后验分布,具有相同形式和不同的参数。
第四,拉布拉斯平滑的作用是给类别和属性设定均匀分布的共轭鲜验朴素贝叶斯,它是最简单的贝叶斯分类器。
如果我将属性之间相互独立的这个强限制给它放宽的话,那得到的就是数增强型的普苏贝尔斯。
它可以看成呢是从新型的阿富汗的朴素贝叶斯到通用的贝叶斯网络的一个过渡。
那么你可以查阅相关的资料,了解数,增强朴素贝ase的原理,并在这里呢分享你的理解。