00:01
2.3.4朴素贝叶斯分类器朴素贝叶斯分类器是与上一节介绍的线性模型非常相似的一种分类器,但它的训练速度往往更快,这种高效率所付出的代价是,朴素贝叶斯模型的泛化能力要比线性分类器,比如logisticgre性和line s VC稍差。首先看一下朴素贝叶斯分类器背后的原理。贝叶斯决策论贝叶斯决策论是概率框架下实施决策的基本方法。对分类任务来说。在所有相关概率都已知的理想情形下,贝斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。下面我们以多分类任务为例来解释其基本原理。假设有N种可能的类别标记。Y等于C1C21的C来的IG是将一个真实值标记为CG的样本物分类为CI所产生的损失。基于后验概率P给定XCI的概率,可获得样本X分类为CI所生的期望损失expected loss。
01:12
即在样本X上的条件风险condition risk啊。给定XCI等于G等于一到A西格玛ZIJP。给定XCG的概率。我们的任务是寻找一个判定值的H。以最小化总体风险。其中。EXFX表示函数FX对F的数学期望。显然,对于每个样本X如H,能最小化条件风险啊。给定XHX。则总体风险RH也将被最小化,这就产生了贝耶斯判判定准则。贝耶decision弱。
02:01
为最小化总体风险,只需在每个样本上选择。哪个能使条件风险?啊,给定XC。最小的类别标记。HX等于A。C除以YR给X。C。此时,H星称为贝耶斯最优分类器贝耶optimal class style,与之对应的总体风险RH称为贝叶斯风险贝耶risk。一减2X。反映了分类器所能达到的最好性能及通过机器学习所能产生的模型精度的理论上限。具体来说。若目标是最小化分类错误率,则误判损失LIG和写为。IG。当I等于G时,等于零,在其他情况等于一。此时条件风险。R给定XC等于一减去给定XC的概率。
03:04
于是最小化分类错误率的贝叶斯最优分类系为HX等于阿Mac属于Y,给定XC的概率。其对每个样本X选择能使后延概率。给定XC的概率最大的类别标记。不难看出,欲使用贝叶斯判定准则来最小化决策风险,首先要获得后验概率。给定XC的概率。然后。现实任务中,这通常难以直接获得。从这个角度来看,机器学习所要实现的是基于有限的训练样本集,尽可能准确的估计出后验概率。给的概率。大体来说,主要有两种策略,格丁X。可通过直接建模。给你。C的概率来预测C,这样得到的是判别式模型discrimin models也可以相对联合概率。
04:05
PX逗号C建模,然后再由此获得给丁XC的概率。这样得到的是深成生成式模型gen models对生成式模型来说,必然考虑。给定XC的概率等于。X逗号C的概率除以X的概率基于贝叶斯定理。上面这个式子可以写成。C的概率乘上给定CX的概率。整体除以。X概率。其中PC。是类鲜艳概率。P给定CX的概率是样本X相对于类别标记C的类条件概率class conditional probability。或称之为自然likelyhood PX是用于规划的证据evidence因子。
05:06
对给定样本X证据因子PX与类标记无关,因此估计。给定XC的概率的问题就转化为如何继续训练数据D。来估计鲜艳PC和四然给定CX的概率。类先验概率PC。表达了样本空间中各类样本所占的比例。根据伯努利大数定律。当训练集包含充足充足的独立同分布样本时,PC可通过各类样本出现的频率来估计。对类条件概率给定CX的概率来说,由于它设计关于X所有属性的联合概率,直接根据样本出现的频率来估计将会遇到严重的困难。例如,假设样本的第一个属性都是二值的,则样本空间将有二的第一次方程可能取值。
06:01
现实应用中,这个值往往远大于训练样本数M,也就是说,很多样本取值在训练集中根本就没有出现,直接使用频率来估计。给定CX的概率显然不可行,因为未被观测到与出现概率为零。通常是不同的。朴素贝叶斯分类器不难发现,基于贝叶斯公式,也就是第八个公式。来估计后验概率。给定XC的概率的主要困难在于类条件概率。给定CX的概率是所有属性上的联合概率,难以从有限的训练样本中直接估计而得。为了避开这个障碍,朴素base器name base采用了属性条件独立性假设attribup。对已知类别,假设所有属性相互独立。换言之,假设每个属性独立的对分类结果发生影响。
07:01
基于属性条件独立性假设。第八个式子,也就是这样一个式子,可以重写为。给的概率等于。C的概率乘上给定CX的概率,整体除以X的概率也就等于。C的概率除以X的概率整体乘上。派I等于到D。给定c Xi的概率。其中B为属性数目。X Xi为X在第二个属性上的取值。由于对所有类别来说PX是相同的。因此基于。第六个式子。也就是这个式子。贝叶斯判定准则有HNBX等于阿maxc属于Y。C的概率乘上派I等于一到D。给定c Xi的概率,这就是朴素贝分离器的表达式。
08:02
对于不同的数据类型变化的地方在这里。显然,朴素V分类器的训练过程就是基于训练基地来估计内线应概率PC。定位每个属性估计条件概率。给定csi的概率。令DC表示训练及D中DC个样本组成的集合,若有充足的独立同分布样本,则可容易的估计出类线性概率。其中。D的绝对值表示集合D中的元素个数。PC等于。DC的绝对值除以D的绝对值。对零散属性而言。令d c Xi表示DC中DX属性上的取值为Xi的样本组成的集合,则条件概率给定c Xi的概率可估计为。给定c Xi的概率等于DC Xi的绝对值除以DC。
09:20
大家自己看一下公式,对连续属性可考虑概率密度函数假定。P给定c Xi。服从正态分布。N谬CI西格玛平方CI。其中缪CI和西格玛CC的平方分别是DC类样本在第二个属性上取值的均值和方差。那么我们就有。给定c Xi的概率密度等于。根号二派西格玛分之一E的负。两倍西格玛CI的平方分之X减去谬CI整体的平方。
10:02
下面我们用我虚拟出来的女大学生数据集。训练一个朴素贝分类器对最后一行数据进行分类,其中X1也就是和朋友是否和朋友一起去上自习。它只有两个取值,零和一,零表示单独上自习,一表示红英一起上自习,X2属于。自然数,诶,它表示的是手机使用的频率。单位是多少次每小时?Y属于零到一,也就目标值,零表示有对象了,一表示单身。注意,当样本数目足够多时,才能进行有意义的概率估计。我这里仅次于这样一个数据集,对估计过程做一个简单的演示。首先估计内线概率。PC。我们可以发现。Y等于零的数据。
11:00
有八个Y等于一的数据还是有八个。所以先概率。Y等于零的概率也就等于Y等于一的概率都等于0.5。然后每个属性估计条件概率。主要是针对预测的这个属性值。给定c Xi的概率。当Y等于零时,也就是在Y等于给定Y等于零,X1等于一的概率是多少?看前八个数据。1234总共八个四除以八也是0.5。给定Y等于零,X2等于二的概率是多少?二除以10.25/84。给定Y等于一,X1等于一的概率是多少?
12:01
二除以八。10.5/4。X2等于二,在Y等于一的条件下,X等于二的概率是多少?一除以10.125/88。于是我们就有。Y等于一的概率乘上给定Y等于一的条件,X1等于一的概率,再乘上Y等于一的条件下,X2等于二的概率,也就等于。把数据都带下来,0.5乘0.25再乘0.125等于0.015625。Y等于零的概率乘上。Y等于零的条件下,X1等于一的概率,再乘上Y等于零的条件,X2等于二的概率,也就等于是。0.5乘0.5再乘0.25等于0.0625。由于0.0625大于0.015625,因此朴素贝叶斯分类器将测试样本判别为Y等于零。
13:05
也就是。人家有对象,就这么简单。这个分类表示的意义就是。当一个女生,她喜欢和朋友一起去上自习。并且他的手机使用频率达到了一小时两次。你就死了,这条心就这么简单。需要注意的是,若某个属性只在训练集中,没有与某个类同时出现过,则直接给予。第十个式子。进行估计。再根据第十个式子。进行判别将出现问题。例如,在使用上述训练。在使用上述数据及训练普速倍分类器时,对一个X2等于三的测试用力就有。当Y等于零的条件X2等于三的概率也就等于Y等于一的条件X2等于三的概率都等于零。
14:04
不管Y取什么值,概率都是零,这显然不合理。为了避免其他属性携带的信息被训练题中未出现的属性值给抹去,在估计概率时通常进行平滑smooth性,常用拉普拉斯修正。具体来说,令N表示训练集第一中可能类别数,N表示第二个属性可能的取值数,则第11个式子和第12个式子。也就这两个式子。可以分别修正为。PC。等于。DC绝对值加一除以DC绝对值加A。
15:00
写错了。DC绝对值加一除以D加A。D的绝对值加一。给定cxi的概率,Hat等于。D c Xi。绝对值加上一除以。DC绝对值加上ni。显然,拉普拉斯修正避免了因训练样本不充分而导致概率估值为零的问题,并且在训练级变大时,修正过程所引入的鲜艳period的影响也会变得可忽略。使得估计趋向于真实概率值。为什么朴素贝叶斯能够比训练速度比线性模型要快?主要原因在于它通过单独查看每个特征来学习参数,并从每个特征中收集简单的类别统计数据。S论中实现了三种组素贝分类器。
16:01
高斯NB、伯努利NB和马诺NB。高斯NB可应用于任意连续数据。而伯努力硬币假定输入数据为二值数据。Marnom隐币假定输入数据为奇数数据及每个特征代表某个对象的整体基数,比如一个单词在句子里出现的次数。伯努利影B和马蒂诺影币主要用于文本数据分类。这三个类。在开的内贝这么一个包中。首先看到。这个高斯N它是假设特征的,自然是服从高斯分布的。给定y Xi的概率等于。根号二派西格玛Y分之一E的负。
17:02
Xi减去谬Y括弧的平方除以两倍西格玛Y的平方。参数西格玛Y和谬Y是通过其他自然估计得出的。下面看到点点伯努力。伯努利影币要求样本中的特征向量的每个分量只有两个取值。判别准则。给定y Xi的概率等于。给定Y的概率乘上Xi加上。一减去给定y Xi的概率,再乘上一减Xi参数阿尔法。浮点数默认1.0,额外的平滑参数取值为零,对应不进行平滑修正。属性。因为它和线性模型比较类似,所以呢。
18:07
参数也都也也跟线性模型有点关系,但是至少名字上有点关系。首先看到Co EF属性。我们都知道线性模型中Co EF表示的是W,也就是系数嘛。在这里,它表示的是一个类别中特征取值的概率去对数。也就是。给另y Xi的概率取对数对应的映射。目的是为了把该模型解释成线性模型。Intercept。线性模型中对应的是截距。在这里对应的是每个类平滑修正之后的概率取对数,也就是。罗Y的概率对应的映射也是为了把该模型解释成线性模型。最后看到论点v.NB。对每个类别Y分布通过向量西塔Y。
19:03
等于西塔Y1轴西塔Y被参数化,其中N是特征数目,西塔Y是一个出现在样本中。属于类别Y的第个特征的概率参数C塔Y通过平滑修正后进行其他自然估计。西塔y I hat等于N加上阿尔法除以N加上阿尔法N。其中NY等于CX属于T。Xi求和是在训练集T中,类别Y对应的特征I出现的次数。NY等于。I。NY进行求和,它表示的是类别Y对应的所有特征的总数。平滑参数阿尔法大于等于零主要是为了防止当特征没有出现在训练集的时候导致概率为零。之前也提到了当阿尔法等于一时,称为拉普拉斯平滑,当阿尔法小于一时,称为雷斯顿平方。
20:12
参数。跟伯努利NB是一样的,同上,属性也是同上,但是需要注意的是,Co EF属性在0.24版本中不建议使用,将会在1.1版本中移除0.26版本进行重命名。intercept属性和它一样,也是0.24版本中不建议用,1.1版本中移除0.26版本重命名。回到书上。伯努利NB分类器计算每个类别中每个特征不为零的元素个数,用一个例子来说明。会很容易理解。
21:55
这里我们有四个数据点,每个点有四个二分类特征,一共有两个类别零和一对于类别零,第一,三个第一,第三个数据点,第一个特征有两个为零,零个不为零。
22:09
第二个特征,有一个为零,一个不为零,以此类推,然后对类别一中数据点计算相同的计数,计算每个类别中非零元素的个数。大体看起来就像这样。
23:57
这段代码中。我不理解的。
24:02
NP.unique。Easy。这个等号赋值右边这一块表达式。首先来看NP.unique。南派unique。原型。就像这样。表示什么意思呢?表示寻找一个数组中独一无二的元素,返回排好序的数组中。独一无二的元素构成的一个一维数组即为排序非重复数组,有三个可选的OA,数出第一独一无二的值。在输入数组中第一次出现的索引,第二用于重构输入数组。
25:02
的排序,非重复数组的索引。每个。独一无二的元素在输入数组中的出现次数。参数AR,它是一个类似数组的对象,如果超过一维,就会被按照行优先原则C元分格的方式。展平成一个一位数组示力。首先是意味的。一个一位数组,1233,去掉重复排好序,123。二维数组。1123。展成一维行优先展成一维。1123去掉重复123。Return index不好类型可选参数默认为false,如果为数也未返回输入数组,如果超过一维就是展屏之后的数组,这其中独一无二的元素第一次出现了。所以例子。
26:00
首先是一维的数组。12231。去掉重复123。对应索引。是。一。在输入数组中,对应的索引是零,所以这个是零,二。第一次出现的位置是在输入数组中,第一个位置是,所以一,所以这里对一,三出现的位置是零,一,二,三,所以。最后一个对应三。下面来看二维的情况。12342345展平去充,也就是12345。这里暂时不容易看的,看的不是很明显。
27:00
这个D它是怎么来的,看的不是很明显,因为需要把这个数组先做展平。对于一维数族,就按照。这里的例子。A。索引对应值。要在这里。U和indexes索引对应值表在这里。一在输入数组中,第一个索引是零,所以ins第一个元素是零,二在输入数组中对应的第一次出现的索引是一,所以ins等于in,一等于一。二。三。他在。输入数组中对应的索引。第一次出现的索引是三,所以这里也是三二位数字的情况,二位数字直接先把A。就这里的例子A进行展平。原本是1234,下面接着2345,可是在我这地方就写成一行1234 2345。
28:08
一在输入数组中首次的索引是零,二在输入数组中首次索引是一。三在输入数组中首次,所以是二。四在输入数组中,首次火影是三。当然是涨停之后的你。在输入展品后的数组中。首次出现,所以是七,所以这里是七。Returns不类型可选参数默认为false,如果为数也会返回,用于重构输入数组,如果输入数组超过一维,那么就重构展屏之后的一维数组的排序。非重复数组的索引例子。大家可以自己看一下。一为数组。这一块粒子。A。1264232INS。
29:05
0143121。在这里。这个怎么来?大家可能有点迷惑,先来看U。U,大家应该都知道。把这个数组去除排序嘛。12346。这个是怎么来的呢?一。在U当中的索引是多少?是零吧。二在U当中的索引是一。六在U当中的索引是四。四在U当中的索引是三。二在U当中的索引是一。五。在。不是。不是533在U当中的缩影是二。二在U当中的索引是一。
30:01
按照这样的过程。就排好了。我们可以发现。You。I。这个表达式。当H不同值的时候。他就可以。给完美的复制。重构输入数组。就是通过这种方式来重构的。通过独一无二的元素。Easy。对应的索引来进行重构的。二维数组当然是涨平之后的了。还是这样一个数组,12342345。U很简单,就是12345。一在U当中的索引是零。
31:01
二在U当中的索引是一,三在U当中的索引是二,四在U当中的索引是三。二。在U当中的索引是是一二,在U当中的索引是一,三,在U当中的索引是二,四,在U当中的索引是三。五在U当中的索引是四。依旧同理。U的Di I。通过这样的方式也可以。把A展平后的数组,也就是上面这一块。给完美的复制。Return counts,多少类型可选参数默认false,如果为two,也会返回每个独一无二的元素在输入数组中的出现次数。
32:03
A等于数组1233。U counts等于NP.unique a count等于true u。去虫排序123。数一下,一出现了几次?很明显是两次,二也出现了两次,三也出现了两次。接下来我们看到。稍微有点复杂的东西。XY等等label.some axis等于零表示什么?其中X是一个二维数组,Y是一个一维数组。Y的长度等于。X点的零雷是一个数。a.sum X X等于零等价于NP.sum a逗号X等于零,其中A是一个数组。那么这块东西表示什么?一步一步的来,首先他肯定先算这里Y等等label,假设label为零,Y和Y等等label的取值间下表。
33:06
Y的取直跟书上一样,0101。Label will。我还等等雷,他是返回。一个不偶数组,它是怎么算出来的?对,任意答,当Yi等等于label时。WHY?等等,Label的I也就这一块,这个数组的索引I。它就等于true,否则它等于false。然后是XY等等label,假设y label就是上表中的数,就是这个负数组。在这里写上。True false true false。然后。把处的。这两行拿出去就是XY等等,Label。
34:01
从数学上看就是这样子,当Y等等label整体的I等于处时,XY等等label。这个数组的。D这个元素等于X的第个元素I和J,从零开始计数。最后是XY等等label.sumx is等于零当A是一个二维数组时,a.sum X is等于零表示把A看成一个列向量组,对每个列向量进行求和优质可得XY等等。label.sum AX is等于零,也就等于是。看这列项的求和,零加零等于零,第一个元素零出来,一加零等于一,第二个元素是一,零加零等于零,第三个元素是零,一加一等于二,第四个元素是二。另外两种朴素贝叶斯模型马诺NB和高斯NB计算的统统计数据类型略有不同。马NB计算每个类别中每个特征的平均值和,高斯NB会保存每个类别中每个特征的平均值和标准差,要想做出预测,需要将数据点与每个类别的统计数据进行比较。
35:18
并将最匹配的类别作为预测结果。有趣的是,Mano硬币和伯努利硬币预测公式的形式都与线性模型完全相同。不幸的是,朴素VS模型Co EF相线的含义与线性模型稍有不同,因为Co EF不同于W。朴素VS模型中Co EF表示什么意思?我刚才也说了。优点、缺点和参数马提诺米NB和伯努利NB都只有一个参数阿尔法,用于控制模型复杂度。阿尔法的工作原理是算法向数据中添加阿尔法这么多的虚拟数据点,这些点对应的所有特征都取正值,这可以将统计数据平滑化。S模性阿尔法越大,平滑化越强,模型复杂度就越低。算法性能对阿尔法值的鲁邦性相对较好,也就是说尔法值对模型的性能并不重要,但调整这个参数通常都会使精度略有提高。
36:20
高斯MB主要用于高维数据。另外两种朴素贝叶斯模型则广泛应用于稀疏技术数据,比如文本。马蒂诺NB的性能通常高于伯努利NB,特别是在包含很多非零特征的数据集及大型文档上。朴素VS模型的许多优点和缺点都与线性模型相同,它的训练和预测速度都很快,训练过程也很容易理解。该模型对高维稀疏数据的效果很好,对参数的鲁邦性也相对较好。朴素贝叶斯模型是很好的基准模型,常用于非常大的数据集。在这些数据集上。
37:01
即使训练线性模型,可能也要花费大量的时间。
我来说两句