实用机器学习笔记二十一:集成学习之 Bagging
前言:
本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。
Bagging:
Bagging 的由来:Bootstrap AGGrgratING,没有其他特殊含义。
Bagging 核心思想:并行(独立)训练 n 个模型做决策。
回归问题:多个模型的输出值的平均
分类问题:多个模型投票表决,那个类型被预测的占比最高,就是哪个类型。
如何训练这 n 个模型:
每一个模型都是利用在同样的数据集上进行 bootstrap 采样得到的数据进行训练。(独立进行的哦)
bootstrap 采样是什么?
假设有 m 个可供训练的样本,随机有放回的从里面采样 m 个数据作为一个模型的训练集。注意:有放回的采样(会有重复样本),就是采样一个样本,然后放回,然后再随机采样....。而且还要注意的是在训练每一个模型时,这个过程是独立进行的,也就是说每一个学习者都要进行这个采样过程。
每次 bootstrap 采样出来的样本数据集中大概包含的原始样本。那么采样出来的数据集中重复的样本大概就有 27%。通常使用每次原始样本中没有被采样到的数据作为验证集。
Bagging code 示例:
Bagging 适用场景:
Bagging 主要降低的是方差,特别是对于不稳定的模型(比如决策树)
在统计学习中,对于某个东西,要查看它,可以进行采样,采用一次,和采样多次取平均,均值变化很小,下降的主要是方差,采样越多,方差越小。
方差比较大的时候,通过 Bagging 取均值,下降的比较好。大方差的模型(又叫不稳定的模型)用 Bagging 比较好。
考虑一个回归问题:真实模型是 f,训练的模型是 h, bagging:,已知(定理):(柯西不等式),因此:
本身不是一个随机变量,是。上式可以写成:。什么时候取等号呢?当每一个 h(x)都一样时,取等号,如果 h(x)之间差别特别大,就不会等。因此:f(x)和 h(x)差距比较大的时候,效果会更好,也就是说模型不是很稳定的时候,使用 bagging 对于降低方差很有效。
实例:
决策树是不稳定的,线性回归是稳定的。
下面两个图的横坐标是模型的数量,也就是做 bagging 时模型的数量。纵坐标是误差。
第一幅图:当模型数量很少时,从训练误差和验证误差看,模型有点过拟合。但是随着模型的数量的增加,两条曲线都在下降。不管模型数量如何增加,验证曲线没有出现上升,并没有使偏差更大。说明改善了泛化误差三项中的一项(再来复习一下上一篇文章讲的:泛化误差=偏差平方+方差+噪音),也就是说明 bagging 可以降低方差。
第二幅图:线性回归模型做 bagging,对性能并没有任何影响。因为线性回归是稳定的。
版权声明: 本文为 InfoQ 作者【打工人!】的原创文章。
原文链接:【http://xie.infoq.cn/article/479fb7da01a0a9913d2e1091a】。文章转载请联系作者。
评论