《机器学习基础及应用》教案第5课使用逻辑回归进行分类.docx
课题使用逻辑回归进行分类课时2课时(90min)教学目标知识技能目标:(1)了解回归与分类的区别(2)掌握逻辑回归的基本原理(3)掌握逻辑回归算法的Skleam实现方法(4)能够编写程序,训练逻辑回归模型并实现预测(5)能够对训练完成的逻辑回归模型进行评估素质目标:锻炼具体问题具体分析的思维方式,培养一丝不苟的工作态度,增强积极主动寻求解决方法的意识研究逻辑回归的基础知识,提升知识水平,培养钻研精神教学重难点教学重点:回归与分类的区别,逻辑回归的基本原理,逻辑回归算法的Sklearn实现方法教学睚点:编写程序,训练逻辑回归模型并实现预测;对训练完成的逻辑回归模型进行评估教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,扫码观看”逻辑回归的基本原理“视频【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】组织学生完成以下任务:(1)画出阶跃函数与Sigmoid函数的图像。(2)写出Sigmoid函数的数学表达式。(3)写出逻辑回归的函数表达式。【学生】思考、举用答传授新知【教师】通过学生的回答引入要讲的知识,介绍逻辑回归的基本原理和逻辑回归算法的Sldeam实现等内容3.1 逻辑回归的基本原理逻辑回归虽然名为回归,实际上却是一种线性分类模型。逻辑回归与线性回归的目标都是得到一条直线,不同的是,线性回归的直线是尽可能拟合自变量的分布,使得训练集中所有样本点到直线的距离尽可能短;而逻辑回归的直线是尽可能拟合决策边界,使得训练样本中不同类的样本点尽可能分离。3.1.1 回归与分类的区别回归与分类最主要的区别就是预测值的类型,如果模型的预测值是连续的数值,就是回归问题;如果模型的预测值是不连续的离散值,就是分类问题。*【教师】通过多媒体展示“回归数据集”和“分类数据集”表格,介绍相关知识例如,用房屋面积和房屋离市中心的距离来预测连续的房价值,这是回归问题,如表3-2所示;用房屋面积和房屋离市中心的距离来预测房价的高低,这就是分类问题,如表3-3所示。表3-2回归数据集房屋面积/(m2)房屋离市中心的距离,'(km)房价/(万元)I(X)18.00320909.002908940.00234表3-3分类数据集房屋面积/(m2)房屋离市中心的距离/(km)房价10018.00高909.00低8940.00低对于回归模型的预测值,如果人为地设置一个阈值(如30(),低于该阈值的归类为低房价,高于或等于该阈值的归类为高房价。那么,就可以把线性回归模型输出的连续值进行离散化,即将线性回归模型改造成相应的线性分类模型。3.1.2逻辑回归的原理分析1 .阶跃函数线性回归模型改造成线性分类模型的关键在于如何彳各模型输出的连续值进行离散化。最直接的方法是设置若干阈值,将回归模型输出的连续值分割为不同的区间,每个区间表示一个类别,从而实现连续值的离散化。然而,这种方法需要人为设置阈值,阈值怎样设置才合理呢?通常对于二分类问题,可将阈值设置为所有样本因变量的中位数或均值。彳取寸于有些问题,这样的分类并不合理,如考试成绩及格或不及格,并不是以均值或中位数对样本进行划分的。÷【教师】通过多媒体展示“阶跃函数”图片(详见教材),帮助学生对这些内容有更直观地认识从数学角度看,这种人为地设置阈值的方法相当于使用阶跃函数对线性回归模型的输出值进行函数映射。2 .激活函数阶跃函数是不连续的函数,无法求导数,而求线性回归参数时,通常需要使用求导数的方法来求极小值。因此,引入阶跃函数之后将导致线性回归模型无法求方程的参数。为此,人们设计出了一些具有良好数学性质的激活函数来代替阶跃函数,以实现对连续值的离散化。线性回归模型引入激活函数后就变成了线性分类模型。可见,线性分类模型就是在线性回归模型的基础上增加了一层激活函数。逻辑回归就是这样一种线性分类模型,它在线性回归模型的基础上增加了激活函数Sigmoid,Sigmoid函数的数学表达式为Sigmoid(X)=-l+e'x÷【教师】通过多媒体展示“Sigmoid函数的图形”图片(详见教材),帮助学生对这些内容有更直观地认识Sigmoid函数的图形,它与阶跃函数的形状很相似,但在阶跃处是连续的。当X=°时,Sigmoid的值为0.5,随着X值的增大,对应的Sigmoid值逐渐接近1;随着X值的减小,Sigmoid值逐渐接近0,但Sigmoid的值永远不可能达到I或0.3 .逻辑回归的函数表达式线性回归模型的函数为S(X)=叫%+叫苍+W-+b,逻辑回归是在线性回归的基础上增加了一层Sigmoid函数。如果令/(X)=SigmOid(幻,并且将g(x)=叫N+W2X2+.+叱'作为自变量代入了(X)中,即可得到逻辑回归模型。因此,逻辑回归的函数表达式为/Ig(切j+e-(Hil+XV2X2+Mn+&)即f(x=!J,+e-(*洛+w+%+fr)通过函数表达式可以看到,fM的值域为(°'°。因此,可将/(X)看成是一个关于样本的概率分布。训练逻辑回归模型的过程就是寻求参数W和b的最佳值的过程。那么,怎样求得参数W和b的最佳值呢?使用逻辑回归处理二分类问题时,模型的预测结果为0或1。对于每个样本,希望逻辑回归预测的类别为真实类别的概率越大越好。具体来说,对于任意给定的n个样本组成的数据集,X,表示某个样本,州表示该样本的标签。如果Xi为正例(标签为1),则希望fg的值越大越好;如果Xi为反例(标签为0),则希望"XJ的值越小越好,即"1一('J"的值越大越好。由于样本的标签V的两个取值互补,故可将两式结合起来,得到P(XIXi)=/(X,)"1-(XJT【高手点拨】公式P(y'J=f(x1)v'口一f(N"-''中,如果Xi为正例,则其标签为1,即A=1,代入公式中,公式变为尸(yXJ=/(X,);如果Xi为反例,则其标签为O,即二°,代入公式中,公式变为P(YIXi)=1-/(,)因此,可将正例与反例结合起来,得到该公式。此时,无论样本是正例还是反例,都希望PRX,的值越大越好。扩展到整个样本数据集上,即可得到似然函数L,其公式为1.=IYf(Xj”-(XJT/=!【知识库】11IP在数学中,通常表示连乘,如表示1x2x3x×11显然,求似然函数的最大值就是逻辑回归的目标。只要求出似然函数的最大值,就可以得到对应的参数W与b的值,最终得到逻辑回归模型。【指点迷津】在机器学习中,损失函数指的是预测值与真实值的误差,通常求得的模型会将损失降到最低,即最小化损失函数。在逻辑回归中,当似然函数最大时,预测的准确率最高,即损失函数最小.因此,在逻辑回归中,最大化似然函数就是最小化损失函数。一个样本逻辑回归的预测值如果大于或等于05,则更接近于I,可以判定该样本属于正例的概率大于属于反例的概率;如果该值小于05,则更接近于O,可以判定该样本属于反例的概率大于属于正例的概率。因此,在逻辑回归中,把0.5作为分类的阈值,大于0.5的样本划分为正例,小于0.5的样本划分为反例.*【教师】提出以下问题,让学生分组讨论并随机邀请学生进行回答请查阅相关资料,说说你对逻辑回归算法的理解。÷【学生】聆听、思考、回答÷【教师】总结学生的回答÷【教师】讲解“素养之窗”的案例(详见教材),了解人工智能的发展方向3.2逻辑回归算法的Sklearn实现3.2.1 Sklearn中的逻辑回归模块÷【教师】组织学生扫码观看“交叉验证法”视频(详见教材),让学生对相关知识有一个大致地了解Sklearn的Iineajmodel模块提供了LogisticRegression类,用于实现逻辑回归。在Sklearn中,可通过下面语句导入逻辑回归模型。fromSkIeam.lineaJmOdelimportLogisticRegression1.ogisticRegression类提供了如下参数。(1)参数SOlVer用来指定损失函数的优化方法,其取值有4个,分别为Iiblinear、Ibfgs、newton-eg和sag。Iiblinear表示内部使用了梯度下降法迭代优化损失函数。IbfgS是一种拟牛顿法,利用损失函数二阶导数矩阵迭代优化损失函数。newioncg也是利用损失函数二阶导数矩阵迭代优化损失函数,其复杂度较低。sag表示随机平均梯度下降,是梯度下降法的变种,适合于样本数据较多的情况。(2)参数Penalty用于指定损失函数的正则化参数,其取值为"11"或"12"(默认值)。其中,"12"支持Iiblinear、Ibfgs、new(on-cg和sag这4种算法,"11”只支持Iiblinear算法。(3)参数ft.intercept用来设置是否存在截距,默认为True,存在翻瓦(4)参数C用来表示正则化系数的倒数,必须为正数,默认为lC值越小,代表正则化越强。【添砖加瓦】在Sklearn中,除LogisticRegression类外,LogiStiCRegreSSionCV类和Iogistic_regression_path类也可以用来做逻辑回归。其中,两者的主要区别是LOgiStiCRegreSSionCV类使用了交叉验证来选择正则化系数C,而logistic_regression_path类需要自己指定一个正则化系数。3.2.2逻辑回归应用举例【例3-1某超市为了分析顾客是否要购买新引进的辣椒酱,以"辣椒酱的辣度内与保质期两因素对购买决定的影响”为主题,随机对24名顾客进行了调查,得到的数据如表3-4所示。使用逻辑回归对该问题进行建模,并判定新辣椒酱(N=3产=7)是否为顾客所购买。÷【教师】通过多媒体展示“顾客是否购买辣椒餐数据集”表格,介绍相关知识表3-4顾客是否购买辣椒酱数据集顾客X2y顾客X2y123113351234114241365115561444116361532117331647118451754019420843020550975021670103302253011440236401252024660【程序分析】(1)这是一个二分类问题,有两个特征变量,逻辑回归模型可表示为F(X)=;八,I+e-(M+M*2+ft>1.=f(iy-f(i)tyt为了求模型参数”、必与b的值,需计算似然函数的最大值。将数据集中I12号顾客作为训练集,1324号顾客作为测试集,计算参数的值。【参考代码】# 导入NumP>,与逻辑回归模型importnumpyasnpfromSklearnJineajmodelimportLogisticRegression斓入训练集数据x=np,aay(23J3,6,5J4J3,2,4,7,5,4,4,3,7,5,33L4,4,5,2)#特征变量:辣椒酱辣度与保质期y=np.array(l41,l,l.l,l40,0,0,0,0.0)# 顾客是否购买,1表示购买,O表示不购买# 建立模型,训练模型model=LogisticRegression()model.fit(x,y.ravel()# 求解逻辑回归方程参数print("w=",mo<lel.coeC."b=",model.intercept.)【运行结果】程序运行结果如图所示。即得到的逻辑回归模型为j(幻-I_1_e(-0.7119552.v,-M).62359736a,4.59iJ836)W=-0.71195520.62359736b=LO.5919836(2)测试该模型的预测准确率。【参考代码】# 输入测试集x,esl=np.array(3,5M2,4U5,6M3,6,3,3M4,5U4,2M5,5M6,7M5,3M6,4,6,6m#特征变量:辣椒酱辣度与保质期yjest=np.array(11l4141,1,1,1,0,0,0,0,0,0)# 顾客是否购买,1表示购买,0表示不购买# 模型预测准确率评估r2=model.score(x_test,y_test)#计算模型的预测准确率Prin1(“模型预测准确率为:",r2)#输出模型的预测准确率【运行结果】程序运行结果如图所示.在样本数据很少的情况下,这个模型的性能已经很好了,可以对新样本进行预测。模型预测准确率为:0.75(3)预测新样本所属类别。【参考代码】a=model.predict(3,7)Prin1(”新样本的预测标签为:,',a0)【运行结果】程序运行结果如图所示。可见,该样本应划分为正例,即顾客会购买该辣椒酱。新样本的预测标签为:1【指点迷津】使用逻辑回归算法得到模型l+e-。例后,可I海过计峻得到的结论是否正确。即将玉=3,w=7代入公式中,求得:f(r=!=1ss0944>05'v×1,a-(-07119552xi+O,62359736a2+0.5919836),a-(-0.7119552×3+,62359736×7+0.59l9836)十C1十e0因此,该样本应划分为正例,即顾客会购买该辣椒酱。【学生】聆听、思考、理解、记录课堂实践【教师】介绍“莺尾花逻辑回归分类”的大概流程,安排学生扫描微课二维码观看视频“莺尾花逻辑回归分类“(详见教材),并迸行讲解和演示1 .数据准备步骤1从SkIeam中导入莺尾花数据集。步骤2提取数据集中的花瓣长度和花瓣宽度两个特征作为训练模型的特征属性。步骤3使用trainest_spil()方法将数据集划分为训练集与测试集。(详见教材)2 .训练与评估模型步骤I导入逻辑回归模型与评估分类准确率的方法。步骤2使用逻辑回归LogisiicRegression定义模型,并对模型进行训练。步骤3对训练完成的逻辑回归模型进行预测准确率的评估。(详见教材)3 .显示分类效果步骤1导入Matplotlib与NumPy库。步骤2使用Matplodib,绘制3种类别莺尾花的分类界面。步骤3绘制3种类别莺尾花的样本点。其中,标签O表示Iris-setosa,标签1表示Iris-versicolor,标签2表示Iris-Virginica,(详见教材)【学生】参照教师的演示进行操作,如遇问题可询问老师【教师】巡堂辅导,及时解决学生遇到的问题课堂小结【教师】简要总结本节课的要点回归与分类的区别逻辑回归的基本原理逻辑回归算法的Sklearn实现方法编写程序,训练逻辑回归模型并实现预测对训练完成的逻辑回归模型进行评估【学生】总结回顾知识点作业布置【教师】布置课后作业请根据课堂知识,完成本章项目实训和项目考核中与本次课程有关的题目。【学生】完成课后任务教学反思