当前位置: 首页 > news >正文

集成方法!

目录

关注降低variance,选择bias较小的基学习器

Bagging

Stacking

Random Forest

关注降低bias,选择variance较小的基学习器

Adaboost

Boosting


关注降低variance,选择bias较小的基学习器

Bagging

给定m个样本的数据集,利用有放回的随机采样法,得到T个含有m个样本的训练集,然后训练基学习器得到T个基学习器,对分类任务采用投票法,对回归任务采用平均法

每个基学习器只使用了m个样本中约63.2%的样本,剩下36.8%的样本可用作验证集。

样本扰动

Stacking

从初始数据集中训练出T个初级学习器,然后将T个初级学习器的输出当作次级学习器的样例输入,而初始样本的标签仍作为样例标记,用新得到的数据集训练次级学习器。

Random Forest

Bagging中的典型代表,样本扰动+属性扰动

关注降低bias,选择variance较小的基学习器

Adaboost

从初始数据集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器出错的训练样本再后面训练构成中得到更多的关注,然后利用调整后的样本分布来训练下一个基学习器,如此重复,最后对每轮训练得到的基学习器进行加权后相加。(基学习器常采用回归树和逻辑回归)

Boosting

为什么说bagging是减小方差,而boosting是减小偏差?

(为什么说bagging是减少variance,而boosting是减少bias? - 知乎)

在这里补充一个variance和bias的关系。

  • bias描述的是根据样本拟合出的模型的输出预测结果的期望与样本真实结果的差距,简单讲,就是在样本上拟合的好不好。要想在bias上表现好,low bias,就得复杂化模型,增加模型的参数,但这样容易过拟合,过拟合对应上图是high variance,点很分散。 low bias对应就是都打在靶心附近,但是很分散
  • variance描述的是样本上训练出来的模型在测试集上的表现,要想在variance上表现好,low variance,就要简化模型,减少模型的参数,但这样容易欠拟合,欠拟合对应上图是high bias,点偏离中心。low variance对应就是点都打的很集中,但是不在靶心附近。

为啥bagging中方差大,boosting中方差小?

最主要的原因来自数据。

bagging思想中方差大的原因是:因为采用了抽样的方式,所以需要抽n次,用这n次来训练模型减少数据中方差带来的影响。

boosting思想中方差小的原因是:因为每次训练时使用了所有数据,所以方差小。

bagging中基学习器一般比较复杂,其bias低,variance较大,所以通过有放回抽样的方式来训练多棵树(从数据层面来处理方差的思路),减少variance带来的影响;

boosting中基学习器一般比较简单,每个学习器之间variance较小,bias较大,所以通过迭代的方式来拟合bias,减少bias带来的影响。boosting也能减少variance:xgboost和lightgbm也引入了样本采样+特征采样,同时训练过程中会对样本reweight,其实时一种广义的bagging.

http://www.lryc.cn/news/40431.html

相关文章:

  • 20年程序员生涯,读了200多本技术书,挑了几本精华好书分享给大家
  • C++ 手写一个WebServer
  • Elasticsearch 简介与安装
  • Qt5.12实战之QByteArray与字符指针及字符串转换
  • 二、ElasticSearch基础语法
  • Yolov8详解与实战
  • 多线程案例——阻塞队列
  • 学习优秀博文(【国产MCU移植】手把手教你使用RT-Thread制作GD32系列BSP)有感 | 文末赠书5本
  • 写用例写的焦头烂额?看看摸鱼5年的老点工是怎么写的...
  • 基于深度学习的鸟类检测识别系统(含UI界面,Python代码)
  • 零基础搭建Tomcat集群(超详细)
  • 机器学习自学笔记——聚类
  • 注意下C语言整形提升
  • Go panic的学习
  • 讲解Linux中samba理论讲解及Linux共享访问
  • 【C++笔试强训】第三十二天
  • OpenAI GPT-4震撼发布:多模态大模型
  • 手把手教你 在linux上安装kafka
  • Spring Cloud(微服务)学习篇(五)
  • 道阻且长,未来可期,从GPT-4窥得通用人工智能时代的冰山一角!
  • 百度将?百度已!
  • 内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
  • 女子举重问题
  • 试题 历届真题 循环小数【第十一届】【决赛】【Python】
  • 关于类型转换
  • 蓝桥杯冲击-02约数篇(必考)
  • 122.(leaflet篇)leaflet地图图片之间存在缝隙
  • 4.类的基本概念
  • 有图解有案例,我终于把 Condition 的原理讲透彻了
  • Linux之找回root密码