《《机器学习基础及应用》教案第10课构建集成学习模型.docx》由会员分享,可在线阅读,更多相关《《机器学习基础及应用》教案第10课构建集成学习模型.docx(10页珍藏版)》请在优知文库上搜索。
1、课题构建集成学习模型课时2课时(90min)教学目标知识技能目标:(1)掌握集成学习的基本原理、结合策略与类型(2)掌握Bagging算法的基本原理及其Skleam实现方法(3)掌握随机森林算法的基本原理及其Skleam实现方法(4)掌握Boosting算法的基本原理及其Skleam实现方法(5)能够使用随机森林算法训练模型(6)能够编写程序,寻找随机森林模型参数的最优值素质目标:掌握集成学习新思路,提升使用科学方法解决实际问题的能力了解科技前沿新技术,拓展社会实践能力教学重难点教学重点:集成学习的基本原理、结合策略与类型;Bagging算法的基本原理及其Sklearn实现方法;随机森林算法的
2、基本原理及其Sklearn实现方法;Bsting算法的基本原理及其Skleam实现方法教学难点:使用随机森林算法训练模型;编写程序,寻找随机森林模型参数的最优值教学方法案例分析法、问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务,提前了解集成学习模型的相关知识【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:什么是集成学习?【甦】思考、传授新知【教师】通过学生的回答引入要讲的知识,介绍集成学习、B
3、agging与随机森林算法、Boosting算法等知识8.1 集成学习8.1.1 集成学习的基本原理1 .集成学习的原理分析*【教师】通过多媒体展示“集成学习的一般结构”图片(详见教材),并进行讲解集成学习(ensemblelearning)也称多分类器系统或基于委员会的学习,它是将多个基础学习器(也称个体学习器)通过结合策略进行结合,形成一个性能优良的集成学习器来完成学习任务的一种方法,如图所示.在集成学习中,个体学习器一般由一个现有的学习算法(如C4.5决策树算法)从训练数据中训练得到。在训练集成学习模型时,如果所有个体学习器都是同类模型(如集成学习模型中每个个体学习器都是决策树模型),则
4、由这些同类个体学习器相结合产生的集成学习模型称为同质集成模型,同质集成模型中的个体学习器亦称“基学习器,相应的学习算法称为基学习算法”;如果个体学习器不是同类模型(如集成学习模型中同时包含决策树分类模型和k近邻分类模型),则由这些不同类别的个体学习器相结合产生的集成学习模型称为异质集成模型,异质集成模型中的个体学习器常称为“组件学习器”。2.个体学习器对集成学习模型性能的影响集成学习是通过一定的结合策略将多个个体学习器进行结合得到的模型。模型的性能会受到个体学习器的预测准确率、多样性和数量等因素的影响。(1)个体学习器的预测准确率与多样性对集成学习模型性能的影响。【教师】通过多媒体展示“集成学
5、习模型性能提升”集成学习模型性能降低“和”集成学习模型性能不变”表格,并介绍相关知识例如,在二分类任务中,如果3个不同的个体学习器在3个测试样本中的预测准确率都是66.6%,则集成学习模型的预测准确率可能能够达到100%,即集成学习模型的性能有所提升,如表8-2所示(。率(一般个体学习器的预测准确率应大于60%),并且各个个体学习器之间要有差异(多样性)(2)个体学习器的数量对集成学习模型性能的影响。例如,在二分类任务中,假设个体学习器的预测误差率相互独立,则集成学习模型的预测误差率为 exp -T(1-其中,T表示个体学习器的数量,0表示个体学习器的预测误差率。【知识库】集成学习模型的预测误
6、差率公式是通过Hoeffding不等式计算得到的,Hoeffding不等蝙常用于组合数学与计算机科学,其不等式右侧的符号exp在高等数学中表示以自然常数e为底的指数函数,即8叫V可见,随着集成学习模型中个体学习器数目T的增大,集成学习模型的预测误差率将呈指数级下降,最终趋向于零。然而,这个结论是基于假设个体学习器的误差相互独立”得到的。在现实任务中,个体学习器是为解决同一问题而训练出来的,显然它们不可能相互独立。事实上,个体学习器的“准确性和多样性本身就存在冲突,一般准确性较高之后,要增加多样性就必须牺牲准确性.所以说,如何训练出好而不同”的个体学习器,是集成学习研究的核心内容。8.1.2集成
7、学习的结合策略常见的集成学习结合策略有3种,分别为平均法、投票法和学习法。1.平均法当模型的预测结果是数值型数据时,最常用的结合策略是平均法,即模型的预测结果是每个个体学习器预测结果的平均值,平均法包含简单平均法和力哝平均法两种。假设集成学习模型中包含T个个体学习器用,其中,个体学习器h对样本X的预测值表示为(外,则简单平均法的计算公式为1 IH(X)=不ZMX)lT力哝平均法的计算公式为=Z岫(X)r=lfWf=l其中,Wi表示个体学习器几的权重,通常要求叫且.加权平均法的权重一般是从训练集中学习得到的。现实任务中的训练样本通常不充分或存在噪声,这使得模型从训练集中学习得到的权重并不完全可靠
8、,尤其对规模较大的孀集来说,要学习的权重太多,模型容易产生过拟合现象.因此,加权平均法不一定优于简单平均法。一般而言,在个体学习器性能差异较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。2.投票法在分类任务中,通常使用投票法。具体流程为每个个体学习器从类别标签集合忙G,GJ中预测出一个标签,然后通过投票决定最终的模型预测结果。投票法分为绝对多娥票法、相对多数投票法和加权投票法3种。(1)绝对多数投票法:某标签票数超过半数,则模型预测为该标签,否则拒绝预测。这在可靠性要求较高的学习任务中是一个很好的机制。(2)相对多数投票法:预测值为票数最多的标签,如果同时有多个标签获得最高票
9、数,则从中随机选取一个.(3)加权投票法:与加权平均法类似,在投票时需要考虑个体学习器的权重。3.学习法当训练集很大时,一种更为强大的结合策略是学习法。学习法是指通过一个学习器将各个个体学习器进行结合的一种策略,通常把个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器。【高手点拨】学习法的典型代表是SIaCking,SIaCking先从初始数据集中训练出初级学习器,然后生成T新数据集用于训练次级学习器。在这个新数据集中,各个初级学习器的输出值是特征变量,而初始样本的标签仍然是新数据集中对应样本的标签。对于一个待测样本,初级学习器可预测出该样本的所属类别,然后将各个初级学习器的输
10、出值(预测完成的类别标签)作为次级学习器的输入值传入次级学习器,次级学习器即可输出集成学习模型的最终预测结果。8.1.3集成学习的类型根据个体学习器的生成方式不同,集成学习可分为两大类,一类为并行化集成学习,即个体学习器之间不存在强依赖关系,可同时生成的集成学习模式,其代表算法是Bagging和随机森林;另一类为串行化集成学习,即个体学习器之间存在强依赖关系,必须串行生成的集成学习模式,其代表算法是Bsting【教师】讲解“素养之窗”的内容(详见教材),了解我国智能产业的发展8.2Bagging与随机森林算法8.2.1 Bagging算法1 .Bagging算法的基本原理【教师】通过多媒体展示
11、“Bagging分类算法原理”图片(详见教材),并进行讲解Bagging算法是并行式集成学习方法中最著名的代表,其基本原理是,给定一个训练样本数据集,基于这个数据集采用自助采样法(bootstrapsampling)生成T个子数据集,然后使用每个子数据集训练一个个体学习器,再将这些个体学习器进行结合得到Bagging模型。Bagging算法在进行结合时,通常对分类任务使用简单投票法,对回归任务使用简单平均法。【高手点拨】自助采样法的采样过程如下。(1)给定一个包含m个样本的数据集,先随机取出一个样本放入采样集中,再将该样本放回初始数据集中,使得下次采样时该样本仍有可能被选中。(2)随机抽取第2
12、个样本放入采样集中,然后再将该样本放回初始数据集中。(3)经过m次随机采样操作,就可以得到一个包含m个样本的子数据集。(4)重复以上步骤,即可得到第2个子数据集、第3个子数据集,直到第T个子数据集。2 .Bagging算法的Sklearn实现Sklearn的ensemble模块提供了BaggingClassifier类和BaggingRegressor类,分别用于实现Bagging分类和回归算法。在Skleam中,可通过下面语句导入Bagging算法模块。fromskleam.ensembleimportBaggingClassifier#导入Bagging分类模块fromSkleam.ens
13、embleimportBaggingRegressor#导入Bagging回归模块BaggingClassifier类和BaggingRegressor类都有如下几个参数。(1)参数base_estimator用于指定个体学习器的基础算法。(2)参数n_estimators用于设置要集成的个体学习器的数量。(3)在Skleam中,Bagging算法允许用户设置训练个体学习器的样本数量和特征数量,分别使用参数nax-samples和参数maxfeaturcs进彳5(4)参数random.state用于设置随机数生成器的种子,能够随机抽取样本和特征。【例81】使用Bagging算法(用k近邻算法训
14、练个体学习器)与k近邻算法对Skleam自带的莺尾花数据集进行分类,并比较两个模型的预测准确率。【程序分析】使用Bagging算法与k近邻算法对莺尾花数据集进行分类并比较两个模型的预测准确率的步骤如下.(1)导入Sklearn自带的莺尾花数据集,然后彳镯娓集拆分为训练集与测试集,并寻找k近邻模型的最优k值。【参考代码】fromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.ensembleimportBaggingClassifierfromsklearn.n
15、eighborsimportKNeighborsClassifierfromsklearn.metricsimportaccuracy.scorefromsklearn.model_seleciionimportcross_va!_scoreimportmatplotlib.pyplotaspit#拆分数据集x,y=load_iris().data.load_iris().targetx_train.x_tes(,y_(rain,y_tes(=train_test_split(x,y,random_state=0,test_size=0.5)#k取不同值的情况下,计算模型的预测误差率k.range=range(l,15)#设置k值的取值范围k-error=#k_error用于保存预测误差率数据forkink-range:model=KNeighborsClassifier(n-neighbors=k)scores=cross_val_score(model.x,y,cv=5,scoring=accuracy)#5折交叉验证k_error.append(l-scores.mean()