机器学习中的集成学习模型实战完整讲解
2019-12-03 13:50:23
集成学习模型实践讲解
——沂水寒城
无论是在机器学习领域还是深度学习领域里面,通过模型的集成来提升整体模型的性能是一件非常有效的事情,当前我们所接触到的比较成熟的四大集成框架主要包括:Bagging、Boosting、Stacking和Blending。对于初学者来说前两种思想或者是框架可能是会比较耳熟能详的,而后两种如果没有接触到的话可能会觉得比较陌生,我也是读了研究生以后才接触到Stacking和Blending的,思想还是比较好理解的,效果也是蛮不错的,这里简单温习一下这三种集成学习策略。下面是我博客里面的一下基础知识,贴出来仅做参考:
1、Bagging
Bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次有放回的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。随机森林是Bagging的一个特化进阶版,所谓的特化是因为随机森林的弱学习器都是决策树。所谓的进阶是随机森林在Bagging的样本随机采样基础上,又加上了特征的随机选择,其基本思想没有脱离Bagging的范畴。Bagging原理示意图如下所示:
2、Boosting
Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的样本在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。Boosting系列算法里最著名算法主要有AdaBoost算法和GBDT提升树(boosting tree)系列算法。原理示意图如下所示:
3、Stacking
Stacking也是一种模型融合的方法。首先,直接用所有的训练数据对第一层多个模型进行k折交叉验证,这样每个模型在训练集上都有一个预测值,然后将这些预测值做为新特征对第二层的模型进行训练,stacking两层模型都使用了全部的训练数据。Stacking模型是指将多种分类器组合在一起来取得更好表现的一种集成学习模型。一般情况下,Stacking模型分为两层。第一层中我们训练多个不同的基础模型,然后再以第一层训练的各个模型的输出作为输入来训练第二层的模型,以得到一个最终的输出。
Stacking原理示意图如下图所示:
4、Blending
Blending设计思想与Stacking类似,对于一般的Blending,主要思路是把原始的训练集先分成两部分,比如70%的数据作为新的训练集,剩下30%的数据作为测试集。第一层我们在这70%的数据上训练多个模型,然后去预测那30%数据的label。在第二层里,我们就直接用这30%数据在第一层预测的结果做为新特征继续训练即可。从这里我们可以看到Stacking和Blending模型在构建过程中最明显的差别就是Stacking的两层训练都是用的全部数据,而Blending是使用的部分数据。
学习了基础的理论知识后,下面进入到实践环节。首先是数据集的创建,具体实现如下:
基于投票的思想来构建集成分类器是很常见的一种方法,常用的投票分类模型主要分为:硬投票模型、软投票模型和软投票加权模型。具体的代码实现如下:
首先是数据集分割与基分类器模型的初始化定义实现:
接下来是集成投票分类器的具体实现:
模型测试结果输出如下:
除了sklearn之外后,mlxtend也提供了原生态的集成投票分类器模型,这里也做一个简单的实践说明,如下:
模型测试输出如下:
接下来,我们分别实践使用Stacking和Blending两种集成框架,其中,由于mlxtend中对Stacking有了完整的实现,我们这里直接使用就好了,Blending的搭建由我们自己完成,具体的实现如下:
模型测试结果输出如下:
这里没有贴出来单个基分类器模型的auc值或者是准确度值,感兴趣的话可以自己亲身实践一下,通过有效的集成学习思想集成的模型在一定程度上对于模型性能的提升还是非常有效的。
到这里集成模型的实践使用和讲解就差不多结束了,最后给出来一点模型调参的实践内容,这部分网上有很多的学习内容,在我之前的文章里面也有一篇关于超参数调参优化的详细实践讲解,感兴趣可以去看看,下面是网格调参的简单实践:
测试结果输出如下:
机器学习中的集成学习模型实战完整讲解相关推荐
- 集成学习模型(xgboost、lightgbm、catboost)进行回归预测构建实战:异常数据处理、缺失值处理、数据重采样resample、独热编码、预测特征检查、特征可视化、预测结构可视化、模型
集成学习模型(xgboost.lightgbm.catboost)进行回归预测构建实战:异常数据处理.缺失值处理.数据重采样resample.独热编码.预测特征检查.特征可视化.预测结构可视化.模型保 ...
- 机器学习系列笔记十三: 集成学习/模型聚合
机器学习系列笔记十三: 集成学习/模型聚合 文章目录 机器学习系列笔记十三: 集成学习/模型聚合 什么是集成学习 Voting Hard Voting 模拟实现Hard Voting 集成学习 使用V ...
- 谷歌发布AdaNet,快速灵活的AutoML工具,帮助开发者构筑强大集成学习模型
点击我爱计算机视觉标星,更快获取CVML新技术 集成学习可以有效利用不同机器学习算法,提高最终模型精确度,在Kaggle比赛中被广泛应用. 训练集成学习模型计算量浩大,参数众多,虽然随着GPU/TPU ...
- 机器学习笔记之集成学习(四)Gradient Boosting
机器学习笔记之集成学习--Gradient Boosting 引言 回顾: Boosting \text{Boosting} Boosting算法思想与 AdaBoost \text{AdaBoost ...
- R基于H2O包构建深度学习模型实战
R基于H2O包构建深度学习模型实战 目录 R基于H2O包构建深度学习模型实战 #案例分析
- 如何用R语言在机器学习中建立集成模型?
来源:拓端数据部落 本文约2400字,建议阅读5分钟 本文向您介绍集成建模的基础知识.另外,为了向您提供有关集合建模的实践经验,我们将使用R对hackathon问题进行集成. 1.什么是集成? 通常, ...
- 深度学习模型实战-深度学习模型在各大公司实际生产环境的应用讲解文章
仓库地址:https://github.com/DA-southampton/Tech_Aarticle/edit/master/README.md 建这个仓库的是因为工作之后发现生产环境中应用的模型 ...
- 集成学习-模型融合学习笔记(附Python代码)
1 集成学习概述 集成学习(Ensemble Learning)是一种能在各种的机器学习任务上提高准确率的强有力技术,其通过组合多个基分类器(base classifier)来完成学习任务.基分类器一 ...
- 【机器学习】使用集成学习回归器改善预测模型的得分
作者 | SHYAM2106 编译 | Flin 来源 | analyticsvidhya 介绍 集成的一般原则是将各种模型的预测与给定的学习算法相结合,以提高单个模型的鲁棒性. "整体大于 ...
最新文章
- 干货丨11位机器学习大牛最爱算法全解
- sublime text 心得
- VTK修炼之道61:体绘制_光线投影+最大密度投影+等值面法
- Vue 动态创建实例
- 公司用的非标普通自动化用单片机还是plc_PLC的介绍
- idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...
- 迅为4412开发板开发笔记--开发板与主机和ubuntu的ping通
- UCF 大牛 Prof. Shah 课题组代码合集
- 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号)...
- directUI的心得
- 电脑端图纸设计辅助工具-AutoCAD提供下载
- 【Vue知识点】路由router详解
- 「津津乐道播客」#353 编码人声:程序员都是「时间管理大师」
- 利用mimikatz查看rdp连接密码【渗透测试】
- mfc切换office样式_VS2015下使用MFC操作Office(Word)
- vue form表单数据提交
- 考计算机854的学校,2020年哈尔滨工业大学854计算机基础硕士研究生入学考试科目大纲...
- 编程参考 - va_list的定义问题
- Java并发Future
- java-net-php-python-jspm酒店自助入住系统计算机毕业设计程序
热门文章
- 对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
- <关于并发框架>Java原生线程池原理及Guava与之的补充
- python中的[:-1] [:,:-1] python矩阵numpy中array的冒号 逗号
- 史上最受程序员待见的计算机入门读物——图解X系列
- M1 mac安装PyTorch的完整步骤指南
- Facebook万字长文:AI模型全部迁移至PyTorch框架
- 零基础学Python:一文看懂数字和字符串
- 收藏 | 计算机网络基础知识总结
- 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)
- 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)