《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx

上传人:夺命阿水 文档编号:1242769 上传时间:2024-04-12 格式:DOCX 页数:9 大小:61.94KB
返回 下载 相关 举报
《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx_第1页
第1页 / 共9页
《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx_第2页
第2页 / 共9页
《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx_第3页
第3页 / 共9页
《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx_第4页
第4页 / 共9页
《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx》由会员分享,可在线阅读,更多相关《《机器学习基础及应用》教案第7课使用朴素贝叶斯算法训练分类器.docx(9页珍藏版)》请在课桌文档上搜索。

1、课题使用朴素贝叶斯算法训练分类器课时2课时(90min)教学目标知识技能目标:(1)掌握先验概率与后验概率的计算方法(2)理解朴素贝叶斯算法的原理与流程(3)了解朴素贝叶斯算法的常见问题及解决方法(4)掌握朴素贝叶斯算法的Skleam实现方法(5)能够使用朴素贝叶斯算法训练分类模型(6)能够编写程序,使用朴素贝叶斯模型进行分类预测素质目标:(1)养成分析问题、事前规划的良好习惯(2)了解中国新技术的发展动向,增强民族自信心和自豪感教学重难点教学重点:先验概率与后验概率的计算方法,朴素贝叶斯算法的原理与流程,朴素贝叶斯算法的SIdearn实现方法教学难点:使用朴素贝叶斯算法训练分类模型;能够编写

2、程序,使用朴素贝叶斯模型进行分类预测教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,提前了解朴素贝叶斯算法的相关知识【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】要求学生扫码观看“贝叶斯算法的历史背景”视频,提出以下问题:(1)关于贝叶斯算法,数学家贝叶斯最初提出的观点是什么?(2)贝叶斯算法的数学原理是怎样的?(3)贝叶斯算法的数学表达式是怎样的?【学生】思考、举手回答传授新知【教师

3、】通过学生的回答引入要讲的知识,介绍朴素贝叶斯算法的基本原理、朴素贝叶斯算法的Sklearn实现等知识5.1 朴素贝叶斯算法的基本原理【教师】提出以下问题,随机邀请学生进行回答朴素贝叶斯算法和贝叶斯算法有什么区别?*【学生】聆听、思考、回答【教师】总结学生的回答朴素贝叶斯算法的基础是贝叶斯算法。贝叶斯算法最初是一种研究不确定性的推理方法,不确定性常用贝叶斯概率表示。贝叶斯概率是一种主观概率,对它的估计取决于先验知识的正确和后验知识的丰富和准确。因此,贝叶斯概率常常会根据个人信息的不同而发生变化。例如,假设1班和2班即将进行一场拔河比赛,不同人对胜负的主观预测可能不同,但基本都会根据两班以前的比

4、赛战况进行预测,那么两班以前的h匕赛战况就是一种先验知识。如果两班以前的比赛胜负次数是9:1,那么贝叶斯概率就认为I班获胜的概率是02如果又获取到另一个先验知识,1班有两名主力因受伤不能参加,则贝叶斯概率可能认为I班获胜的概率是0.8。可见,虽然是一种主观概率,但贝叶斯概率按照相关先验知识对事件进行推理是一种合理的方法.5.1.1 先验概率和后验概率在一个空间中,事件A发生的概率用P(八)表示;在事件A发生的条件下,事件B发生的概率用P(BIA)表示。那么,P(八)就是先验概率(PriOrProbability),口目则称作事件B的后验概率(posteriorprobability)0后验概率

5、的计算公式为P(6A)J4B)P(八)例如,经典的抛硬币实验,当实验发生一定次数后,整个样本空间中出现正面(F)与反面(R)的瞬都趋近于0.5。如果一碘3枚硬币,那么,总共会出现FFF,FFR,FRF,FRR,RRR,RFF,RFR,RRF)8种情况,每种情况出现的概率为l8现在,用A描述同时抛出3枚硬币时第一枚硬币出现正面的事件,第一枚硬币出现正面的情况有4种,分别是FFF,FFR,FRF,FRR),因此,概率为P(八)=8;用B描述硬币出现反面的事件,抛出3枚硬币出现反面的情况共有7种,分别是FFR,FRF,FRR,RRR,RFFfRFR,RRF那么,事件A与事件B的交集为FFR,FRF,

6、FRR,共有3种情况,概率为P(AlB)=3/8因此,在事件A发生的条件下,事件B发生的概率,即事件B的后验概率为P(BIA) =P(A B) 3/8 3P(A)4/8由于 P(A f6) = P(8P(B)=皿也P(B)则有尸(8A)=P(AlB)P(B)因此有A)P(AIB)P(B)P(A)P(八)5.1.2 朴素贝叶斯算法的原理与流程1.朴素贝叶斯算法的原理在机器学习中,分类任务就是预测某个样本属于某个类别的过程,预测时需要从已有的数据集中找到相关规律,然后根据规律进行判定。朴素贝叶斯算法找规律的原理是根据数据集中的已有数据得到先验概率,然后求解待测样本属于每个类别的后验概率,哪个类别概

7、率高就将新样本判定为哪个类别。下面根据后验概率的公式,进一步进行推理。假设数据集中有I个特征和两个类别标签,特征用X表示,两个类别分别用c和G表示。则两个类别的先验瞬分别为P(G)和P(G),样本属于类别G和G的后验瞬分别为P(CJx) =P(XIC)P(G)P(C2x) =P()P(XlG)P(G)Pa)计算得到的结果中,哪个概率大,就将新样本划分为哪个类别。现在,将数据集进行扩展,如果数据集中有多个特征(用司,王,;表示各特征)和多个类别标签(用G表示某个类别).那么,样本属于某个类别的后验概率为Ds.、PCX1,v2,zIC)P(C)P(Gl%,%,E)=f、尸(X,X2,x)对于同一个

8、数据集来说,每个类别的后验概率的分母P(Xl出为)都是相同的。因此,只需要除分子P(E,Ic)P(G)的大小即可。计算分子Pg2,IG)P(C)的值时,朴素贝叶斯算法做了一个假设,即数据集中所有特征相互独立,特征之间不存在依赖关系,因此下面的等式成立.P(X,为,/IG)P(G)=P(KlG)P(X21G)P(flIG)P(G)而PalC)P(S)-P(XflIG)P(G)中每一项的值都可以从数据集的样本中获得,因此,可以计算出尸(XilC)P(v2IC)尸(怎IG)P(C)的值。【教师】随机邀请学生回答以下问题:朴素贝叶斯算法中的朴素指的是什么?【学生】聆听、思考、回答【教师】总结学生的回答

9、可见,朴素贝叶斯算法是基于贝叶斯算法与特征条件独立假设的分类算法,其中朴素”的含义就是假设所有特征之间相互独立.2.朴素贝叶斯算法的流程使用朴素贝叶斯算法训练分类器的流程如下。()设”=何,%为一个待分类样本,内,苍,尤为样本的特征。(2)有类别集合C=G,。2,GJ.(3)分别计算每个类别的后验概率P(GlX),P(GU),P(CJ%),即等价于计算P(X1IC1)PU2IG)P(X)IlG)P(Cl)P(KlC2)P(x2C2)PKlC2)P(C2),tfP(EICm)P(Wlg)P区ICHf)P(Ct)的值。(4)如果P(GIX)=rnaxP(C1x),P(GI刈,P(C,I切,则XWG

10、.【例5-1某商家为了分析顾客是否要购买新引进的平板电脑,收集了14名客户的信息,如表5-1所示。试使用朴素贝叶斯算法进行计算,判断新客户(年龄30,收入中等,是学生,信用一般)是否购买该平板电脑。【教师】通过多媒体展示“购买平板电脑的客户信息表”表格,介绍相关知识表5“购买平板电脑的客户信息表客户编号年龄(岁)收入是否为学生信用是否购买平板电脑130高否否240中等否T是540低是T是640低否好否730-40低是好是830中等是一般否940中等是一般是1140中等否好否【解】数据集中每个样本有4个特征,分别为年龄、收入、是否为学生和信用;类别标签共有两个,分别为会购买平板电脑和不会购买平板

11、电脑,分别用G和G表示。判定新客户是否会购买平板电脑是一个二分类问题,使用朴素贝叶斯算法计算的过程如下。(1)计算每个类别属性的先验概率。先验概率的计算方法为每个类别的样本数量除以数据集中的样本总数量。购买平板电脑的先验概率为P(G)=W14;不购买平板电脑的先验概率为P(G)=5/14。(2)计算新客户在每个类别中的后验概率.新客户(年龄30,收入中等,是学生,信用一般)购买该平板电脑的后验概率为P(Gl年龄V30,中等,学生,一般)等价于计算P(年龄30IG)尸(中等IG)P(学生IG)P(一般IG)P(G)“的值.其中P(年龄V30IG)表示购买平板电脑的客户中年龄小于30岁的客户比例,

12、查数据集表中的数据可知次年龄V3IG)=2/9。同理,其他的数据也可以通过查表得到,于是有p(年龄30IG)P仲等IG)P伴生IG)P(一般G)P(G)=2/94/96/96/99/140.028新客户(年龄30,收入中等,是学生,信用一般)不购买该平板电脑的后验概率为P(Gl年龄30,中等,学生,一般)等价于计算“P(年龄30G)P(中等G)P(学生Cz)P(一般Cz)P(G)的值。查数据集表中的数据可得p(年龄30g)p(中等IG)p(学生IG)(一般IG)P(G)=3/52/51/52/55/140.007(3)比较两个值的大小.由于().028大于0.007,故判定新客户会购买该平板电

13、脑。3.朴素贝叶斯算法的特点【教师】随机邀请学生回答以下问题:朴素贝叶斯算法有什么优点和缺点?【学生】聆听、思考、回答【教师】总结学生的回答朴素贝叶斯算法的优点:逻辑简单、易于实现,算法的复杂性较小;算法比较稳定,具有较好的健壮性;对小规模的数据表现很好,能处理多分类任务;对缺失数据不太敏感,常用于文本分类;虽然概率估计可能是有偏差的,但人们大多关心的不是它的值,而朝E列次序,因此有偏差的估计在某些情况下可能并不重要。朴素贝叶斯算法的缺点:很多实际问题中,特征之间相互独立这个假设并不成立,如果在特征之间存在相关性,会导致分类效果下降。5.1.3朴素贝叶斯算法的常见问题及解决方法朴素贝叶斯算法在

14、实际应用时常会遇到以下几个需要解决的问题。1 .零概率问题在使用朴素贝叶斯算法解决实际问题时,很可能会遇到某个特征的概率为O的现象。例如,例5-1中,如果要预测的新客户的属性值为(3()年龄40,收入中等,是学生,信用一般),则不购买平板电脑的概率计算如下。(。2130年龄40,中等,学生,一般)一P(30年龄401g)p(中等IG)p(学生IG)P(一般IG)P(C2)=0/52/51/52/55/14=0可见,计算公式中只要有一项为0,其值必定为0.显然,概率为0的类别肯定是所有类别中概率最小的类别,但零解问题其实是因为数据集中某个特征属性值的样本没有出现造成的,不能因为概率是0,就将这个

15、类别排除,这是不合理的。【教师】随机邀请学生回答以下问题:如何解决零概率问题?*【学生】聆听、思考、回答【教师】总结学生的回答为解决零概率问题,科学家提出了使用分子加I,分母加特征个数的方法估计各个类的后脸概率,这个方法称为拉普拉斯平滑。使用拉普拉斯平滑判定属性值为(30年龄4。,收入中等,是学生,信用一般)的新客户的所属类别过程如下(以下公式分母中的4表示特征的个数)P(30v年龄401C2)=0/5=0P(3(X年龄40C2)=(0+1)/(5+4)=0.111P(中等IC2)=2/5=0.4P(中等IC2)=(2+1)/(5+4)=0.333P(学生IC2)=1/5=0.2P(学生IC?

16、)=(1+1)/(5+4)=0.222P(一般IC?)=2/5=0.4P(一般IG)=Q+1)/(5+4)=0.333如果样本量很大的情况下,每个分量的计数加1造成的估计概率变化可以忽略不计,这样就可以有效地避免零概率问题,而且拉普拉斯平滑对所有类的后验概率进行计算,也不会造成偏向某个类的现象。2 .溢出问题实际分类问题中,数据集的特征往往会有几十甚至上百个,每个特征的条彳牛概率都小于1,多个小于I的数相乘,最终的结果会是一个非常小的小数,而这个小数有可能会超出计算机浮点数的表示范围,出现浮点数溢出的计算错误.为了解决这个问题,科学家们修改了条件概率的计算公式,即对公式p(-1.)P(-2q.

17、)a%IC)尸()求对数,从而将各概率相乘变为相加。这样做肯定会改变计算结果,但是朴素贝叶斯算法是通过比较待分类样本属于各个类别的概率的大小实现分类的,并不关注概率本身。只要能比较概率的大小即可,无须计算准确的概率值。这种对计算结果求对数的方法在很多机器学习算法中都有应用,是一种常用的计算技巧。3 .特征独立性无法满足的问题朴素贝叶斯算法的一个基本假设就是样本的各特征之间相互独立,从而方便计算各个类别的概率值。但对于很多实际问题,样本的多个特征之间往往存在一定的联系,强制假设其相互独立在一定程度上会影响模型的预测准确性。为此,人们提出了一种半朴素贝叶斯分类模型,该模型允许样本的部分特征之间存在

18、依赖关系。半朴素贝叶斯分类模型通常采用独依赖估计”策略表达特征之间的依赖关系。独依赖估计策略的基本思想是假设样本的每个特征都可关联一个对其产生影响的特征,基于此再进行计算。【教师】讲解“素养之窗”的内容(详见教材),引导学生了解中国科技的发展4 .2朴素贝叶斯算法的Sklearn实现5.2.1Sklearn中的朴素贝叶斯模块SkIearn的naive.bayes模块提供了3种朴素贝叶斯算法,分别是高斯朴素贝叶斯算法、多项拗卜素贝叶斯算法和伯努利朴素贝叶斯算法。这3种算法适合应用在不同的场景下,在实际应用中应根据特征变量的不同选择不同的算法。(1)高斯朴素贝叶斯算法通常应用于特征变量是连续变量,

19、符合高斯分布的情况,如人的身高、物体的长度等。(2)多项式朴素贝叶斯算法通常用于特征变量是离散变量,符合多项式分布的情况,如文档分类中,特征变量为某单词的出现次数。(3)伯努利朴素贝叶斯算法通常用于特征变量是布尔变量,符合0/1分布的情况,如文档分类中,特征变量为某单词是否出现。【高手点拨】在实际应用中,多项式朴素贝叶斯算法和伯努利朴素贝叶斯算法经常用在文本分类中。多项式朴素贝叶斯算法以单词为单位,计算某单词在文件中出现的次数,而伯努利朴素贝叶斯算法以文件为单位,如果某单词在某文件中出现即为1,不出现即为0.Sklearn的naive_bayes模块提供了3种算法对应的类,分别为Gaussia

20、nNBxMultinomialNB和BemouIIiNB,可通过下面语句导入。fromskleam.naive-bayesimportGaussianNB# 导入高斯朴素贝叶斯模块fromskleam.natve_bayesimportMuItinomialNB# 导入多项式朴素贝叶斯模块fromskleam.naive_bayesimportBernoulliNB# 导入伯努利朴素贝叶斯模块5.2.2朴素贝叶斯算法的应用举例【例5-2使用朴素贝叶斯算法对Skleam中自带的莺尾花数据集进行分类。【程序分析】Sklean1中自带的莺尾花数据集的特征变量有4个,分别为花萼长度、花萼宽度、花瓣长度

21、与花瓣宽度,这些特征变量都是连续变量,应该使用高斯朴素贝叶斯算法对其进行建模。【参考代码】#导入需要的库fromskleam.datasetsimportIoadJrisfromSkIeam.modeLSeleClionimporttrain_tesi_splitfromskleam.natve-bayesimportGaussianNBfromskleam.metricsimportaccuracyscore# 提取特征,划分数据集x,y=loadjris().data,loadjris().targetx_train,x_test,y_train,y_test=train_test_spl

22、it(x,y,random-state=1,test-size=50)# 定义与训练模型model=GaussianNB()model.fit(x_train,y_train)# 模型评估pred=model.predici(xjest)Prim(测试集数据的预测标签为:Pred)Prin1(测试集数据的真实标签为,yjest)print(测试集共有d条数据,其中预测错误的数据有d条,预测准确率%.2,%(xjest.shape0,(rei!=yjest).sum(),accuracy-score(yjest,pred)【运行结果】程序运行结果如图所示。可见,使用朴素贝叶斯算法训练分类模型,预

23、测准确率可达94%。测试集数据的预测标签为01102220021021101:LOOII2021001212122010122012120001测试集数据的真实标签为01102120021021101100111021001212122010122022120001测试集共有50条数据,其中预测错误的数据有3条,预测准确率为0.94【学生】聆听、思考、理解、记录任务实施【教师】介绍朴素贝叶斯算法实现邮件分类”的大概流程,安排学生扫描微课二维码观看视频“数据与数据预处理”“训练分类器”和“测试邮件的类别预测“(详见教材),并进彳领解和演示1 .数据与停用词表准备步骤I导入。S模块步骤2使用OS模

24、块的IiSldir()函数获取正常邮件和垃圾邮件的文件列表步骤3输出正常邮件与垃圾邮件的文件列表(详见教材)2 .数据预处理步骤I导入中文分词库(如结巴分词)步骤2定义gelWords()函数,用于提取指定文件(邮件文件)中的词语步骤3使用getWords。函数,提取数据集所有文件中的词语,存放于变量allwords中(详见教材)3 .训练分类器步骤I导入多项式朴素贝叶斯模型步骤2为数据集打标签,1表示垃圾邮件,0表示正常邮件步骤3将高频词语在每封邮件中出现的次数作为特征变量,赋值给X,将标签赋值给y(详见教材)4 .测试邮件的类别预测步骤I准备测试邮件.测试邮件共有两封,分别命名为Hnonn

25、al-test.txtH与spam-estixi,保存在文件夹test中。其中,normal-test-txt为正常邮件,-spam-test.txtw为垃圾邮件步骤2获取测试邮件的文件表步骤3调用gelWords()函数,分别提取测试文件中的词语(详见教材)【学生】参照教师的演示进行操作,如遇问题可询问老师【教师】巡堂辅导,及时解决学生遇到的问题课堂小结【教师】简要总结本节课的要点朴素贝叶斯算法的基本原理朴素贝叶斯算法的Skleam实现朴素贝叶斯算法实现邮件分类【学生】总结回顾知识点作业布置【教师】布置课后作业请根据课堂知识,完成本章项目实训和项目考核中与本次课程有关的题目。【学生】完成课后任务教学反思

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号