集成学习(Bagging、Boosting、Stacking)算法原理与算法步骤
集成学习
概述
严格意义上来说,集成学习算法不能算是一种机器学习算法,而像是一种模型优化手段,是一种能在各种机器学习任务上提高准确率的强有力技术。在很多数据挖掘竞赛中,集成学习算法是比赛大杀器,能很好地提升算法的性能。集成学习算法是由多个较弱的模型以一定方法组成集成模型,而这些弱学习器包括SVR、LASSO、KNN等等。Schapire从理论上证明了在知道弱学习器正确率下限的时,可以通过集成算法能将弱学习器提升为强学习器。
集成算法往往是先单独对每个模型进行训练,然后以某种方式结合这些模型的预测结果,最终得到一个总体的更具可靠性的预测结果。目前集成学习算法大多来源于Bagging、Boosting、Stacking三种思想。
1. Bagging算法
Bagging算法,又称为装袋算法,最初由Leo Breiman于1996年提出,是并行式集成学习的典型代表。Bagging算法主要是从数据层面上设计,使用自助采样法随机有放回地对样本进行采样,构建出样本量相等的相互独立的样本数据集,在同一算法中训练出不同的模型。Bagging算法的集成策略也很简单,对于分类问题,一般通过投票法,以多数模型预测结果为最终结果。而对于回归问题,一般采用算术平均法,对所有模型的预测结果做算术平均得到最终结果。Bagging算法的流程如图1.1所示, Bagging算法步骤如图1.2所示。
2. Boosting算法
Boosting算法是一种用来减少监督式学习中偏差的机器学习算法,与Bagging算法不同的是,Boosting串行式集成学习算法。Boosting算法基于错误提升模型性能,根据前面分类器分类错误的样本,调整训练集中各个样本的权重,构建新的分类器。其训练过程是呈阶梯状的,后一个基模型会在前一个基模型的基础上进行学习,最终以某种综合方式,比如加权法,对所有模型的预测结果进行加权来产生最终的结果。Boosting算法的流程如图2.1所示。
Boosting可以组合多个弱学习器来形成一个强学习器,提高了模型的整体预测精度。在模型训练过程中,每个算法会生成一个弱规则,而Boosting算法总是更加关注被错误分类的规则。如果第一个基础的学习算法预测错误,则该点在下一次的基础学习算法的权重会变高。关于Boosting算法,最常用的是AdaBoost和XGBoost。
3. Stacking集成学习算法
Stacking是一种分层模型集成框架,在1992年被Wolpert提出。Stacking集成可以有多层的情况,但通常会设计两层,第一层由多种基模型组成,输入为原始训练集,而输出为各种基模型的预测值,而第二层只有一个元模型,对第一层的各种模型的预测值和真实值进行训练,从而得到完成的集成模型。同理,预测测试集的过程也要先经过所有基模型的预测,组成第二层的特征,再用第二层的元模型预测出最终的结果。为了防止模型过拟合的情况,一般Stacking算法在第一层训练基模型时会结合k折交叉验证法。以五折交叉验证法为例,Stacking算法的过程如图3.1所示。
Stacking算法原理很简单,以两层结构为例,在训练阶段,假设有训练集数据D={(x1,y1), (x2,y2), … , xn,yn},根据5折交叉验证法被随机划分为5个大小相似且互斥的数据子集D1、D2、D3、D4和D5。分别以其中一个数据子集为验证集,其他4个为训练集,来训练第一层的基模型BM1,BM2, … , BMn,每个基模型都被训练5次。以第一个基模型BM1为例,对验证集进行预测,分别得到p1,p2,p3,p4和p5,组成原数据集大小的prob1。以此类推,得到prob1, prob2, prob3, … , probn作为第二层元模型的特征,与真实值label组成第二层的数据集,用于元模型训练。
在测试阶段,以第一个基模型BM1为例,5个训练好的基模型BM1分别对测试集进行预测,得到ρ1,ρ2,ρ3,ρ4和ρ5,取平均得到prob1。以此类推,得到 组成第二层的样本集,导入第二层训练好的元模型进行预测,得到最终预测结果。
Stacking优化
无论是模型选择、算法结构,还是特征处理上,传统的Stacking算法都有很多需要改进的地方。这里是我对传统Stacking算法优化的一些尝试,感兴趣的可以去看看。 stacking优化.
集成学习(Bagging、Boosting、Stacking)算法原理与算法步骤相关推荐
- 机器学习--集成学习--Bagging,Boosting,Stacking
在一些数据挖掘竞赛中,后期我们需要对多个模型进行融合以提高效果时,常常会用到Bagging,Boosting,Stacking等这几个框架算法.下面就来分别详细讲述这三个框架算法.这里我们只做原理上的 ...
- 集成学习bagging, boosting, stacking
集成学习能够通过训练数据集产生多个学习模型,然后通过一定的结合策略生成强学习模型. bagging 可以并行执行 每一棵树权重是一样的 随机森林 Bagging是bootstrap aggregati ...
- 集成学习-Bagging和Boosting算法
文章目录 集成学习 Bagging 随机森林 Bosting Adaboost GBDT XGBoost 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网 ...
- 集成学习——Bagging、Boosting、Stacking
目录 偏差与方差 投票法 集成学习 Bagging Bootstraps Bagging Boosting 基本概念 Adaboost 前向分步算法 梯度提升树(GBDT) XGBoost Light ...
- 树模型系列之集成学习(Bagging、Boosting、Stacking)
文章目录 树模型系列之集成学习(Bagging.Boosting.Stacking) bagging Boosting Stacking 偏差与方差 集成学习的偏差与方差 Bagging 的偏差与方差 ...
- R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型、并评估模型在测试集和训练集上的分类效果(accuray、F1、偏差Deviance):Bagging算法与随机森林对比
R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型.并评估模型在测试集和训练集上的分类效果(accuray.F1.偏差Deviance):Bagging算法与随机森林对比 ...
- 机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习] Bagging算法的编程实现 李俊才 的 CSDN 博客:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 ...
- 集成学习之Boosting
集成学习之Boosting 1.boosting集成原理 1.1 什么是boosting 随着学习的积累从弱到强 简而言之:每新加入一个弱学习器,整体能力就会得到提升 代表算法:Adaboost,GB ...
- 集成学习——BAGGING和随机森林
集成学习--BAGGING和随机森林 集成学习--BAGGING和随机森林 1.什么是集成学习 2.怎样进行集成学习 3.Bagging方法 4.Bagging方法训练.预测过程 5.Bagging方 ...
- 大白话5分钟带你走进人工智能-第30节集成学习之Boosting方式和Adaboost
目录 1.前述: 2.Bosting方式介绍: 3.Adaboost例子: 4.adaboost整体流程: 5.待解决问题: 6.解决第一个问题:如何获得不同的g(x): 6.1 我们看下权重与函数的 ...
最新文章
- 【实习】京东搜索相关性算法部门
- 国际色卡c色号查询_怎幺提取图片中的潘通色卡?图片找色卡
- 头插法建立单链表学习总结
- 编译Linux 2.6内核
- 当c语言老师遇到网络崩溃,网络教学搞不定?工科教授来支招!
- np.meshgrid函数中的indexing参数问题
- antv g6多次渲染问题解决
- 朋友圈/评论/点赞/搜索/购物车
- Windows 内网渗透之攻击域控
- Python合并有相同列的两个表格
- Python之pip升级命令
- weblogic的集群与配置--架构师第九天
- 符号分开的一列数据列转行
- (六)安装xdd-plus的保姆级搭建教程+xdd-plus修复+对接青龙+指令用途/看了你就能学废【2022年5月23日】【更新】
- php iphone壁纸,iphone 壁纸尺寸 PHP 图像尺寸调整代码
- K均值聚类以及matlab实现
- ES6的三种暴露方式
- WinCC 使用VBS脚本操作变量、控件总结
- c语言题库-1010顺序结构习题:摄氏温度转换为华氏温度和绝对温度
- SpringBoot 配置返回前端固定格式yyyy-MM-dd HH:mm:ss和接收ISO时间自动转为LocalDateTime
热门文章
- CVPR2018 | R(2+1)D结构:视频动作识别中的时空卷积深度探究
- 【Android Training - Performance】提高显示布局文件的性能[Lesson 3 - 按需载入视图(ViewStub的使用方法)]
- 论文学习:Occlusion Robust Face Recognition Based on Mask Learning
- Occlusion Aware Facial Expression RecognitionUsing CNN With Attention Mechanism阅读笔记
- 【笔记】行测——常识判断之文史常识总结与归纳(二)
- python drop删除多列_Python drop方法删除列之inplace参数实例
- Mysql命令行登录和退出
- 阿里巴巴mysql dba面试题_阿里巴巴MySQL DBA面试题
- X5浏览器支持HTML5吗,腾讯X5 Blink内核 加强H5支持和渲染性能支撑
- 程序员的四种境界 西安尚学堂