机器学习原理与应用电子教案 5.11.1集成学习进阶_第1页
机器学习原理与应用电子教案 5.11.1集成学习进阶_第2页
机器学习原理与应用电子教案 5.11.1集成学习进阶_第3页
机器学习原理与应用电子教案 5.11.1集成学习进阶_第4页
机器学习原理与应用电子教案 5.11.1集成学习进阶_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

备课日期:年月日授课时间课时(理论+实验)周次星期:节次:授课课题集成学习[进阶]教学目标1.理解集成学习的高级集成框架(Boosting、Bagging与Stacking)基本原理。2.掌握Scikit-learn集成学习高级集成框架的实现方法。教学重点1.Boosting集成学习框架。2.Bagging集成学习框架。3.Stacking集成学习框架。教学准备PPT、点名册等。教学方法指导阅读、实例演示。教学过程设计备注课题引入【思考】集成学习基础集成策略的局限性。【关键】集成学习旨在训练多个“个体学习器”或者基学习器,然后以特定策略将其进行组合以产生比单一学习器性能优越的强学习器。从理论上而言,只要基分类器不比弱分类器差(瞎猜好一点的分类器),随着个体分类器数目的增大,集成后的强分类器的错误率会趋向于0,或者说集成后的强分类器可以任意好!【时间】分钟。教学步骤及主要内容【主板】§15.集成学习框架[进阶]一、Boosting框架【主板】BoostingBoosting算法是一种可将弱学习器提升为强学习器的算法。1.基本原理【强化与拓展】先根据初始训练样本训练初始基学习器,再根据初始基学习器的表现对训练样本分布进行调整,使得初始基学习器分类错误的训练样本在后续受到更多关注;然后基于调整后的训练样本训练下一个基学习器(此基学习器将尝试纠正先前基学习器的错误),如此重复进行直至基学习器数目达到事先指定值,最终将多个基学习器进行加权组合以构成性能更强的学习器。2.经典算法:AdaBoost。AdaBoost首先选取一个基分类器在给定数据集上做出预测并记录错误分类的样本,然后增加错误分类样本的权重以训练更新权重的训练集生成第二个基分类器,如此反复直至产生指定数量的基分类器(或拟合所有/大部分训练实例),进而对基分类器进行加权组合生成强分类器。【强化与拓展】(1)使用加权后的训练数据代替随机选取的训练样本,可将模型训练的焦点集中在较难分的训练样本上。(2)将弱分类器联合起来,使用加权的投票机制代替平均投票机制,进而可使分类效果好的弱分类器具有较大的权重,而分类效果差的分类器具有较小的权重。(3)样本权值更新。增大分类错误样本的权重,降低分类正确样本的权重,以此突显分错的样本以构成新的样本分布。(4)弱分类器权值更新。增大准确率较高的弱分类器的权重,降低准确率较低的弱分类器。〖PPT〗基本原理。3.算法实现(1)库导入fromsklearn.ensembleimportAdaBoostClassifierfromsklearn.ensembleimportAdaBoostRegressor(2)主函数sklearn.ensemble.AdaBoostClassifier(base_estimator=None,n_estimators=50)sklearn.ensemble.AdaBoostRegressor(base_estimator=None,n_estimators=50)【强化与拓展】(1)base_estimator:弱分类或回归学习器,一般是CART决策树或者神经网络MLP(默认为决策树)。(2)n_estimators:弱学习器的最大个数(默认为50);值太小容易欠拟合,太大容易过拟合。〖PPT〗编程实现过程。4.优缺点(1)优点【强化与拓展】(1)Adaboost算法不需要预先知道弱分类器的错误率上限,且最后得到的强分类器的分类精度依赖于所有弱分类器的分类精度;而且可以根据弱分类器的反馈,自适应地调整假定的错误率。(2)Adaboost可以通过不改变训练数据而只改变数据权值分布的方式使数据在不同学习器中产生不同作用。(3)Adaboost可以使用各种回归分类模型来构建弱学习器,非常灵活。弱分类器可并行实现。(2)缺点【强化与拓展】(1)在Adaboost训练过程中,Adaboost会使得难于分类样本的权值呈指数增长,训练将过于偏向此类样本,导致其易受噪声干扰。(2)Adaboost依赖于弱分类器,而弱分类器的训练时间往往很长。(3)由于异常样本在迭代中可能会获得较高的权重,Adaboost因而对异常样本敏感。二、Bagging框架【主板书】Bagging1.基本原理【强化与拓展】给定大小为n的样本集,随机从中取出1个样本放入采样集,然后再将其放回原样本集以使下次采样时该样本仍有可能被选中;如此经过n次随机采样操作则可得到包含大小为n的采样集(初始样本集中部分样本可能在采样集中多次出现或从未出现)。类似地可采样获得T个大小为n的采样集,然后对每个采样集进行训练以获得基学习器,进而将基学习进行集成(如投票法)而生成强学习器。通过“少数服从多数”的原则来确定最终的结果。2.与Boosting的主要区别【强化与拓展】(1)样本选择:Boosting每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化,而权值是根据上一轮的分类结果进行调整。Bagging训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。(2)样例权值:Boosting根据错误率不断调整样例的权值,错误率越大则权重越大。Bagging使用均匀取样,每个样例的权重相等。(3)预测函数:Boosting每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。Bagging所有预测模型的权重相等。(4)计算方式:Boosting各个预测模型只能顺序生成,因为后一个模型参数需要前一轮模型的结果。Bagging各个预测模型可以并行生成。3.经典算法:随机森林随机森林的基本步骤如下:第一步:从原始数据集(Bootstrapping)创建随机子集。第二步:在决策树中的每个节点处,仅考虑一组随机特征来决定最佳分割。第三步:在每个子集上拟合决策树模型。第四步:通过对所有决策树的预测求平均来计算最终预测。【强化与拓展】在随机森林中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。用参数k控制随机性引入程度,若令k=d,则基决策树的构建与传统决策树相同;若令k=1,则只随机选择一个属性用于划分;一般情况下,推荐k=log_2⁡d。通过这种方式引入属性的随机性。〖PPT〗Bagging基本原理。4.算法实现(1)库导入fromsklearn.ensembleimportRandomForestClassifierfromsklearn.ensembleimportRandomForestRegressor(2)主函数RandomForestClassifier(n_estimators=10,criterion=‘gini’,max_depth=None)【强化与拓展】(1)n_estimators:随机森林中要创建的决策树数量(默认值为10)。(2)criterion:采用信息熵或者基尼指数度量分裂质量(默认为基尼指数)。(3)max_depth:树的最大深度。〖PPT〗编程实现过程。三、Stacking框架【主板书】Stacking1.基本原理根据训练集训练出N个初级学习器(可为同构基学习器或互不相同的异构基学习器,如决策树、神经网络等),然后以初级学习器的输出作为特征输入训练次级学习器(初始样本的标记仍被当做是样例标记),进而获得最终的强学习器。【强化与拓展】(1)通过使用上一层的预测结果作为下一层预测的特征,比起相互独立的预测模型能够有更强的非线性表述能力,降低泛化误差。(2)Stacking是很强大的集成方式,在某种意义上和深度学习类似,纵向增加了学习深度,但也增加了模型复杂性和不可解释性。2.算法实现(1)库导入frommlxtend.classifierimportStackingClassifierfrommlxtend.regressorimportStackingRegressor【强化与拓展】Mlxtend是一个基于Python的开源项目,主要为日常处理数据科学相关的任务提供了一些工具和扩展。Mlxtend是一个用于日常数据科学任务的Python库。(2)主函数StackingClassifier(classifiers,meta_classifier)StackingRegressor(regressors,meta_regressor)【强化与拓展】(1)classifiers/regressors:形式为数组形式的基分类器或回归器。(2)meta_classifier/meta_regressor:元分类器或回归器,即基分类器或回归器集成后的分类器或回归器。〖PPT〗编程实现过程。课堂练习其他无小结与作业课堂小结集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个个体学习器完成学习任务的策略(即常说的“博采众长”)。集成学习可以用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等等,应用非常广泛。目前主流方法Boosting(代表:Adaboosting)、Bagging(代表:随机森林)与Stacking等三种。对于模型组合方式,Bagging与Boosting采用多数投票或算术平均的线性组合策略,Stacking采用的是基本模型非线性组合的方式。此外,Bagging和Stacking中的基本模型须为强模型(低偏差高方差),Boosting中的基本模型为弱模型(低方差高偏差)。本课作业本课教学反思(课堂设计理念,实际教学效果及改进设想)利用以下方法生成数据集,然后完成相关题目:fromsklearn.datasetsimportmake_classificationfromsklearn.model_selectionimporttrain_test_splitX,y=make_classification(n_samples=1000,n_features=4)x_train,x_test,y_train,y_test=train_test_split(x,y,test_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论