• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

跟李沐学AI实用机器学习 | 第五章

武飞扬头像
ZzzGo!
帮助1

5.1 方差和偏差

方差:预测结果的方差

偏差:预测结果和真实值之间的差距

需要低方差、低偏差的模型

学新通 

第一项为偏差,第二项为方差

学新通

减小泛化误差

  • 减小偏差:设计更加复杂的模型,例如增加神经网络的层数、隐藏单元,Boosting、Stacking
  • 减小方差:更简单的模型,使用L1L2正则项,Bagging、Stacking
  • 减小噪音σ平方:提升数据质量

BoostingStackingBagging属于集成学习Ensemble learning

5.2 Bagging-Bootstrap AGGregatING

Bagging并行训练n个base learner,然后通过平均learner的输出(回归问题)或者多数投票(分类)进行决策。每个learner在经过Bootstrap采样的数据上进行训练。

Bootstrap采样:假设有m个训练样本,有放回地从数据中随机采样m个样本。那么大概有1-1/e≈63%的样本会被采样到,剩下的部分(未被采样到的数据out-of-bag)用于验证。

学新通

Bagging降低方差,当base learner不那么稳定的时候(例如决策树),bagging对于降低方差的效果更好。

5.3 Boosting

把多个弱模型组合在一起得到更强的模型,减小偏差

Boosting按顺序学习n个弱模型,在第i步中,训练弱模型h_i,评估它的误差;根据误差的情况重新采样数据,多关注预测不正确的样本。

经典算法:AdaBoost、Gradient Boosting

Gradient Boosting:H_t(x)表示时刻t的模型,H_1(x)=0。在时刻t=1,2,3,…时,在残差数据{(xi, yi-H_t(xi))}i=1,…,m 上训练一个新模型ht,H_(t 1)(x)=H_t(x) θht(x),学习率θ通过收缩正则化模型。如果选择MSE作为损失函数,残差部分就等于负梯度方向。

其他Boosting算法可以通过选择不同的函数空间(损失函数)很容易地换到Gradient Boosting的框架里学新通

GBDT:使用小一点的决策树作为base learner,降低过拟合风险

顺序建树太慢了,可以使用加速算法,如XGBoostlightGBM

5.4 Stacking(比较贵)

单层Stacking:把多个base learner组合在一起降低方差在同样的数据集上训练不同的模型,把不同模型的输出concat起来,经过全连接层得到最终的结果。

跟bagging的区别:①不需要经过Bootstrap采样 ②学习的模型是不同类型的

学新通

多层Stacking降低偏差,特别容易过拟合

学新通 

降低过拟合风险的方法

  • 划分训练数据集,不同层stacking采用不同的训练集
  • 重复的k折bagging:假设有k个模型,把数据集分成k份,k-1份用于训练,1份用于验证。假设第i个模型是在第 i 块数据上做了验证,那么把第 i 个模型在第 i 块数据上的输出作为预测输出,把所有模型的预测并起来,进入到下一层进行训练。(进一步降低方差的方法:重复上述步骤n次,把n次的预测结果取平均,再进入到下一层进行训练)

Reduce

Variance

Bias

Computation cost

Parallelization

Bagging

Y

 

n

n

Boosting

 

Y

n

1

Stacking

 

Y

n

n

K-fold multi-level stacking

Y

Y

n*L*k

n*k

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggcfgj
系列文章
更多 icon
同类精品
更多 icon
继续加载