1、集成学习概述

机器学习分为有监督学习算法和无监督学习算法。在有监督学习中,我们的目标是学习一个稳定的且各方面都表现较好的模型。但是,实际情况往往不理想,有时我们只能得到多个在某些方面表现比较好的“弱监督模型”。集成学习就是组合多个“弱监督模型”,以得到一个更好,更全面的“强监督模型”。

2、集成学习算法分类

集成学习算法分为:Boosting算法、Bagging算法、Stacking算法

2.1Boosting算法(提升法)

Boosting算法包括:AdaBoost、GBDT、XGBoost

Boosting算法原理:

(1)首先赋予每个训练样本相同的权重,在训练样本中,用初始权重训练出一个“弱学习器1”,然后根据弱学习的学习误差率来更新训练样本的权重,使得“弱学习器1”中学习误差率高的训练样本点所占的权重变大,进而这些误差率更高的点在“弱学习器2”中得到更多的重视。

(2)基于调整权重后的训练集来训练“弱学习器2”。如此反复进行,知道弱学习器数量达到指定数目K。

(3)将K个弱学习器通过集合策略进行整合,得到最终的强学习器。

Boosting算法个体学习器之间存在强依赖关系

2.1.1 AdaBoost

AdaBoost的基本思想是提高前一轮弱分类器错误分类样本的权重,降低正确分类样本的权重。

2.1.2 GBDT

GBDT是回归树,不是分类树。

GBDT的核心在于累加所有树的结果作为最终结果。

GBDT的关键点就是利用损失函数的负梯度去模拟残差,这样对于一般的损失函数只要其一阶导数就行。

2.1.3 XGBoost

XGBoost对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。

2.2Bagging算法(自助法)

Bagging算法Bootstrap Aggregation算法的简写,也称为自助法,是一种有放回的抽样方法,目的是得到统计量的分布和置信区间。

Bootstrap抽样方法的工作原理

(1)采用重采样的方法(有放回抽样)从原始样本中抽取一定数量的样本呢

(2)根据抽出的样本计算想要的统计量T

(3)重复上述步骤N次,得到N个统计量T

(4)根据这N个统计量T计算出统计量的置信区间

在Bagging算法中,利用Bootstrap方法从整体数据中采取有放回抽样得到N个数据集,在每个学习集上学习出一个弱算法模型,利用N个模型的输出得到最后的预测结果。

N个模型的组合方式为:

分类问题:采用N个模型预测投票的方式。

回归问题:采用N个模型预测平均的方式。

Bagging算法若干个学习器之间没有依赖关系

2.2.1随机森林(RF)

一棵树是决策树,多棵树是随机森林,解决了决策树泛化能力弱的缺点。

随机:(随机选择样本、随机选择特征)

集成学习:简单投票法或简单平均法

2.3 Stacking算法(融合法)

Stacking算法是指,训练一个模型用于组合其他各个模型(即通过元分类或元回归聚合多个分类或回归模型),其中基础层次模型基于完整训练集进行训练,元模型基于基础层次模型的输出进行训练

基础层次模型通常由不同的学习算法组成,但必须是同一类算法(同为分类算法或是同为回归算法)

-------------------------------------------------------------------------------------------------------------------------------------------------------

以下忽略即可,还没整理。

3随机森林(Random Forest)

RF=决策树+Bagging+随机属性选择

#RF算法流程

#样本的随机:从样本集中用bagging的方式,随机选择n个样本

#特征的随机:从所有属性d中随机选择k个属性(k<d),然后从k个属性属性中选择最佳分割属性作为节点建立CART决策树

#重复以上两个步骤m次,简历m棵CART决策树

#这m棵CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类

4boosting

#AdaBoost(Adaptive Boosting)自适应增强

#自适应在于:前一个基本分类器被错误分类的样本的权值(抽样的概率)会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,知道达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。

#特点:将学习器的重点放在容易出错的样本上可以提升学习器的性能

#Adaboost算法步骤:

#首先,初始化训练数据的权值分布D1。假设有N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:w1=1/N

#然后,训练弱分类器hj。如果某个训练样本点被弱分类器hj准确地分类,那么在构造下一个训练集中,它对应的权值要减少。反之,则增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。

#最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的作用。

#Adaboost算法流程

5Stacking

#使用多个不同的分类器对训练集进行预测,把预测得到的结果作为一个次级分类器的输入。次级分类器的输出是整个模型的预测结果

机器学习之集成学习(Boosting算法、Bagging算法、Stacking算法)总结相关推荐

  1. 【机器学习】集成学习—Boosting—GBM(Gradient Boosting Machine)解析

    [机器学习]集成学习-Boosting-GBM(Gradient Boosting Machine)解析 文章目录 [机器学习]集成学习-Boosting-GBM(Gradient Boosting ...

  2. 机器学习集成学习-BOOSTING与BAGGING

    集成算法(Emseble Learning) 是构建多个学习器,然后通过一定策略结合把它们来完成学习任务的,常常可以获得比单一学习显著优越的学习器. 用于减少方差的bagging 用于减少偏差的boo ...

  3. 集成学习boosting和bagging

    思想:通过构建并结合多个学习器来完成学习任务 强学习器:如神经网络等,需要大量的数据,以及较高的服务器性能等,一般来说准确性很高. 弱学习器:如果决策树.逻辑回归等,模型简单,一般准确性一般. 通过组 ...

  4. 【机器学习】集成学习知识点总结二

    GBDT原理概述 GBDT是集成学习Boosting的一种.算法流程详见集成学习之梯度提升树GBDT. Gradient boosting的主要思想是,每一次建立单个学习器时,是在之前建立的模型的损失 ...

  5. 集成学习——Boosting(AdaBoost,Gradient Boosting)

    集成学习--Boosting 与bagging方法不同,boosting中各个分类器串行生成,第Hn个分类器会受到Hn-1个分类器的影响.其主要思想是使下一个分类器更加关注于在上一个分类器上不能很好预 ...

  6. 【集成学习】:bagging和boosting算法及对比

    参考:bagging和boosting算法(集成学习算法) Bagging算法和Boosting区别和联系 机器学习笔记-集成学习之Bagging,Boosting,随机森林三者特性对比 目录 1. ...

  7. 04 集成学习 - Boosting - AdaBoost算法构建

    03 集成学习 - Boosting - AdaBoost算法原理 十.AdaBoost算法构建 上一章最后说明了每个基模型的权值α是如何求得的,于是我就可以对模型进行更新操作了. 构建过程一 1.假 ...

  8. 集成学习-Boosting集成学习算法GBDT

    GBDT算法的核心为:先构造一个(决策)树,然后不断在已有模型和实际样本输出的残差上再构造一颗树,依次迭代. 目录 Decistion Tree(决策树) Gradient Boosting(梯度提升 ...

  9. 集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking)

    集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking) 集成学习简介 集成学习(Ensemble)指的是,instead of 用一个单一的精密的高效能的学习 ...

  10. 笔记—集成学习—Boosting

    集成学习--Boosting 一.引言 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型.但是,实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模 ...

最新文章

  1. Science综述:人类与微生物共进退
  2. 程序员版《我和我的家乡》,拼搏奋斗的IT人是家乡的骄傲!
  3. 数学图形(2.8)Viviani曲线
  4. Spring Boot使用Druid和监控配置
  5. 高效使用Google
  6. 【深度学习】卷积越大性能越强!RepLKNet一作在线分享:Transformer阴影下的超大卷积核复兴...
  7. python tkinter背景图片_如何在tkinter中有背景图像和按钮?
  8. Hive--sql中的explode()函数和posexplode()函数
  9. 使用nginx 和 switchhost实现自定义域名指向本地服务
  10. 企业网站建设方案策划书
  11. VSCode 花式玩法(摸鱼)了解一下
  12. java使用pdfbox将图片转换成pdf
  13. 产品经理面试,说一下你是怎么做产品规划的?
  14. 知道君推荐给大家一些写论文、搞科研、读大学必备的30款软件。
  15. 玩转前端 Video 播放器
  16. 基于微信小程序的民宿酒店预订系统
  17. modbus tcp主站和从站_Modbus-RTU 一主多从PLC无线通讯经典案例
  18. 我现在的笔记有哪几个地方?
  19. 卸载ros2 foxy
  20. 人形机器人视觉处理——定位抓取

热门文章

  1. 超全教育cc0高清摄影图片素材网站整理
  2. 三巨擘合推Google电视开拓商机
  3. windows10linux主题,这不是Win10!Linux Mint迎来扁平主题
  4. 网页框架·flask
  5. jenkins用spring-boot-maven-plugin构建出错:repackage failed: Unable to find main class
  6. PHP房屋租售信息管理系统可以用wamp、phpstudy运行定制开发mysql数据库BS模式
  7. java-php-net-python-二手书商城系统计算机毕业设计程序
  8. java毕业设计投标文件在线制作系统(附源码、数据库)
  9. 【数据库】PL/SQL向Oracle数据库中粘贴数据
  10. 新手站长要怎么坚持更新网站?