《《机器学习基础及应用》教案第4课训练线性回归预测模型(二).docx》由会员分享,可在线阅读,更多相关《《机器学习基础及应用》教案第4课训练线性回归预测模型(二).docx(6页珍藏版)》请在优知文库上搜索。
1、课题训练线性回归预测模型(二)课时2课时(90min)教学目标知识技能目标:(1)掌握岭回归与套索回归的基本原理与参数调节方法(2)能够编写程序,训练线性回归模型并实现预测素质目标:了解时代新科技,激发学习兴趣和创新思维,增强民族自信心学习基础知识,提高选择合适方法解决不同问题的能力教学重难点教学重点:岭回归与套索回归的基本原理与参数调节方法教学难点:编写程序,训练线性回归模型并实现预测教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,
2、请大家提前了解机器学习的一般流程有哪些【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:线性回归模型很容易出现出以合现象。有哪些算法使人们能控制模型的复杂度,避免过拟合现象呢?【学生】举手回答传授新知【教师】通过学生的回答引入要讲的知识,介绍岭回归与套索回归2.3岭回归与套索回归2.3.1 岭回归的原理与参数调节岭回归也是一种常用的回归模型,它实际上是一种改良的最小二乘法,是以损失部分信息、降低精度为代价以获得回归系数,是更为符合实际、更可靠的回归方法,常用于多维问题。1.岭回归原理岭回归是避免线性回归过拟合现象的一种线性模型。过拟合
3、是指模型的学习能力”太强了,以致于把训练样本自身的一些特点当成了所有样本的一般性质进行学习,导致泛化能力下降。因此,要训练实用性更强的模型,就需要减小特征变量对预测结果的影响。岭回归通过保持模型所有的特征变量而减小特征变量的系数值,来减4特征变量对预测结果的影响。这种保留全部特征属性,只是降低特征变量的系数值来避免过拟合的方法称为L2正则化。在Skleam中,可通过如下语句导入岭回归模型。fromsklearn.linear_molelimportRidge【例2-5使用糖尿病数据集,用岭回归训练一个模型,并对其进行评估。【参考代码】#导入岭回归模型、糖尿病数据集及划分样本的方法fromskl
4、earn.linear_modelimportRidgefromsklearn.datasetsimportload_diabetesfromsklearn.model-selectionimporttrain_test_split#将数据集划分为训练集和测试集x,y=load_diabetes().data,】oad_diabetes().targelx_train,x_test,y_train,y_test=train_test_split(x,y,random_state=8)钏练模型model=Ridge()model.fit(x_train.y_train)估模型,计算模型的预测准确
5、率r21=model.score(x_lrain,y_train)附算模型在训练集上的预测准确率r22=model.score(x_test,y_test)#计算模型在测试集上的预测准确率#输出模型的预测准确率Print(”模型在训练集上的预测准确率为:”,r21)Prin1(”模型在测试集上的预测准确率为:,r22)【运行结果】程序运行结果如图所示。与例2-4结果相比,本例中使用岭回归训练的模型,预测的准确率要比线性回归稍微低一些,但是在测试数据集上的准确率与训练数据集上的准确率几乎一致,说明岭回归的泛化能力更强。模型在训练臭上的预测准确率为:0.4326376676137663模型在测试莫
6、上的预测准确率为:0.43252177690681852.岭回归参数的调节在岭回归中,可以通过改变alpha参数的值来控制减小特征变量系数的程度,alpha参数的默认值为L【高手点拨】alpha参数的取值没有一定的规定。alpha的最佳设置取决于特定的数据集。增加alpha值会第氐特征变量的系数,使之趋近于零,从而降低其在训练集上的性能,但更有助于提高泛化能力。【例2-6修改例2-5中糖尿病模型的alpha参数,将其值设置为10,观察其运行结果。【程序分析】将例2-5程序中的model=Ridge()修改为Hmodel=Ridge(alpha=10)m【运行结果】程序运行结果如图2-16所示。
7、可见,提高alpha值之后,模型的性能大大降低了,但是测试集的预测准确率却超过了训练集。模型在训练舆上的预测准确率为:0.1511996236701113模型在测试集上的预测准确率为:0.16202013428866247【例2-7修改例2-5中糖尿病模型的alpha参数,将其值设置为0.1,观察其运行结果。【程序分析】将例2-5程序中的model=Ridge()修改为Mmodel=Ridge(alpha=0.1)m【运行结果】程序运行结果如图2-17所示。可见,把aSha值设置为0.1之后,模型在训练集上的预测准确率就略低于线性回归,但在测试集上的预测准确率却有所提升。如果alpha值非常小
8、,那么系统的限制几乎可以忽略不计,得到的结果也会非常接近线性回归。模型在训练集上的预测准确率为:0.5215646055241339模型在测试集上的预测准确率为:0.47340195009453082.3.2套索回归的原理与参数调节1.套索回归原理除岭回归之外,还有一个可以对线性回归进行正则化的模型,即套索回归。套索回归通过减少部分特征来减小特征变量对预测结果的影响,从而避免过拟合,这种方法称为U正则化。Ll正则化会导致在使用套索回归时,有部分特征的系数为0,从而忽略掉一些特征,可以看成是模型对特征进行自动选择的一种方式。在SkIearn中,可通过如下语句导入套索回归模型。fromSkleam
9、.IineajmodelimportLasso【例2-8使用糖尿病数据集,用套索回归训练一个模型,并对其进行评估.【参考代码】#导入套索回归模型、糖尿病数据集、划分样本的方法及NUmPy库fromskleam.linear_modelimportLassofromskleam.datasetsimportload-diabetesfromsklearn.model_selectionimporttrain_test_splitimportnumpyasnp#将数据集划分为训练集和测试集x,y=load_diabetes().data,load_diabetes().targetx_train,
10、x_test,y_train,y_test=train_test_split(x,y.random_state=8)制I练模型model=Lasso()model.fit(x_train,y_train)a=np.sum(model.coef-!=0)群英型特征性不等于O的个数解估模型,计算模型的预测准确率r21=model.score(x_Uain,y_train)#计算模型在训练集上的预测准确率r22=model.score(x_test,y_tesi)#计算模型在测试集上的预测准确率#输出模型的预测准确率Prin模型在训练集上的预测准确率为:tr21)Prin1(“模型在测试集上的预测准
11、确率为:t,r22)Print(套索回归使用的特征数为:,a)【运行结果】程序运行结果如图所示。可以看到,套索回归在训练集与测试集上的表现都比较糟糕,这意味着模型发生了欠拟合问题.在这IO个特征中,套索回归模型只用了3个。与岭回归相似,套索回归也可通过调节其alpha参数,来控制特征变量系数被约束到0的强度。稹型在训练集上的预测准确率为:0.36242428249291325模型在测试集上的预测准确率为:0.36561858962128套索回归使用的特征数为:3【程序说明】np.sum(moiel.coefj=0)用于设置模型中W值不等于0的个数,即真正使用的特征个数.2.套索回归参数的调节在
12、套索回归中,alpha参数的默认值也是Ie为了降低欠拟合的程度,增加特征变量的数量,需要将alpha的值减小,并且增大最大迭代次数。【例2-9修改例2-8中糖尿病模型的alpha参数,将其值设置为0.1,观察其运行结果。【程序分析】将例2-8程序中的model=Lasso()”修改为,model=Lasso(alpha=0.1,max_iter=100000)H【运行结果】程序运行结果如图2-19所示。可见,降低alpha参数的值会使得模型使用的特征数量变多,从而在训练集与测试集上有更好的表现.模型在训练集上的预测准确率为:0.519480608218357模型在测试集上的预测准确率为:0.4
13、79947o7514558173套索回归使用的特征数为:7【高手点拨】在实际应用中,该如何选择岭回归和套索回归呢?在实践中,岭回归往往是这两个模型的优选。但是,如果数据集中特征数量过多,而且只有一小部分是真正重要的,那么套索回归会是更好的选择。【学生】聆听、思考、理解、记录课堂实践【教师】介绍“波士顿房价线性回归预测”的大概流程,安排学生扫描微课二维码现看视频“波士顿房价线性回归预测“(详见教材),并进彳亍井解和演示1.数据准备步骤1导入Pandas与NumPy库。步骤2读取波士顿房价数据集,并将数据集拆分为特征变量与标签两部分。如果从网址http:/lib.stat.cmu.edu/data
14、sets/boston不能正确导入波士顿房价数据集,也可以使用本书提供的配套素材item2item2-ss-datatxt,如果使用本书提供的配套素材,须将该文件复制到当前工作目录中。步骤3将特征变量(data)与标签(target)分别存储于数组X和y中。(详见教材)(1)pd.read_csv(data_url,sep=s+,skiprows=22,header=None)函于读取csv文件,第一个参数为必填参数,表示读取的文件路径;sep参数可定义列与列之间的分隔符,默认为逗号,指定为飞+“的含义是分隔符为一个或多个(数量不限)空格;skiprows=22表示忽略前面的22行内容(页面的
15、前22行是数据集信息介绍);header参数用来指定文件中的哪些内容作为列名,一般文件中的第一行为列名,None表示不指定列名。(2)hsiack()函数可按水平方向(列顺序)堆售数组构成一个新的数组,即将原文件中的数据去除标签值之后重新组成一个数组,可以提取数据集中的特征变量。2 .训I练与评估型为便于比较线性回归、岭回归与套索回归3种算法的效果,现分别使用这3种算法训练模型。步骤1导入线性回归、岭回归与套索回归模型。步骤2导入划分样本函数IrainjeSLSPli1(),并使用该函数将数据集划分为训练集与测试集,测试集所占比例为30%.步骤3定义线性回归、岭回归与套索回归3个模型并将其分别命名为LinearRidge与Lasso(详见教材)3个线性模型定义好之后,可将这3个模型放于数组modd中,将模型对应的名称放于数组names中。步骤4分别训练线性回归、岭回归与套索回归模型,计算其预测准确率并进行输出。3 .显示回归效果步骤1将alpha的取值设置为0.0001、0.0005、0.001、0.005、0