集成学习

4/14/2021 BoostingBagging

# 请介绍下常见的几种集成学习框架:boosting/bagging/stacking

Bagging 全称叫 Bootstrap aggregating,每个基学习器都会对训练集进行有放回抽样得到子训练集,比较著名的采样法为 0.632 自助法。每个基学习器基于不同子训练集进行训练,并综合所有基学习器的预测值得到最终的预测结果。Bagging 常用的综合方法是投票法,票数最多的类别为预测类别。

Boosting 训练过程为阶梯状,基模型的训练是有顺序的,每个基模型都会在前一个基模型学习的基础上进行学习,最终综合所有基模型的预测值产生最终的预测结果,用的比较多的综合方式为加权法。

Stacking 是先用全部数据训练好基模型,然后每个基模型都对每个训练样本进行的预测,其预测值将作为训练样本的特征值,最终会得到新的训练样本,然后基于新的训练样本进行训练得到模型,然后得到最终预测结果。

# 为什么集成学习会好于单个学习器?

  1. 弱分类器间存在一定的差异性,这会导致分类的边界不同,也就是说可能存在错误。那么将多个若分类器合并后,就可以得到更加合理的边界,减少整体的错误率,实现更好的效果。
  2. 对于数据集过大或者过小,可以分别进行划分和有放回的操作,产生不同的数据子集,然后使用数据子集训练不同的分类器,最终再合并成一个大分类器。
  3. 如果数据的划分边界过于复杂,使用线性模型很难描述情况,那么可以训练多个模型,然后再进行模型的融合。
  4. 对于多个异构的特征集,很难进行融合。那么可以考虑为每个数据集构建一个分类模型,然后将多个模型融合。

# 请简述下模型的方差与偏差的含义?

偏差(Bias)描述样本拟合出的模型的预测结果的期望与样本真实结果的差距,要想偏差表现的好,就需要复杂化模型,增加模型的参数,但这样容易过拟合,过拟合对应上图的 High Variance,点会很分散。低偏差对应的点都打在靶心附近,所以喵的很准,但不一定很稳;

方差(Variance)描述样本上训练出来的模型在测试集上的表现,要想方差表现的好,需要简化模型,减少模型的复杂度,但这样容易欠拟合,欠拟合对应上图 High Bias,点偏离中心。低方差对应就是点都打的很集中,但不一定是靶心附近,手很稳,但不一定瞄的准。

# 集成学习中的基模型一定是弱模型吗?

通常来说弱模型是偏差高(在训练集上准确度低)方差小(防止过拟合能力强)的模型,但并不是所有集成学习框架中的基模型都是弱模型。

Bagging 和 Stacking 中的基模型为强模型(偏差低,方差高),

而Boosting 中的基模型为弱模型(偏差高,方差低)。

# 请计算一下模型的总体期望和总体方差

在 Bagging 和 Boosting 框架中,通过计算基模型的期望和方差我们可以得到模型整体的期望和方差。为了简化模型,我们假设基模型的期望为,方差,模型的权重为,两两模型间的相关系数相等。由于 Bagging 和 Boosting 的基模型都是线性组成的,那么有:

模型总体期望:

模型总体方差:

模型的准确度可由偏差和方差共同决定:

# 为什么Bagging中的基模型一定要为强模型?

对于 Bagging 来说,每个基模型的权重等于 1/m 且期望近似相等,故我们可以得到:

$$E(F)=\sum_i^m r_iE(f_i) $$

通过上式我们可以看到:

  • 整体模型的期望等于基模型的期望,这也意味着整体模型的偏差和基模型的偏差近似。
  • 整体模型的方差小于等于基模型的方差,当且仅当相关性时取等号,随着基模型数量增多,整体模型的方差减少,从而防止过拟合的能力增强,模型的准确度得到提高但是,模型的准确度一定会无限逼近于1吗?并不一定,当基模型数增加到一定程度时,方差公式第一项的改变对整体方差的作用很小,防止过拟合的能力达到极限,这便是准确度的极限了。

所以Bagging 中的基模型一定要为强模型,如果 Bagging 使用弱模型则会导致整体模型的偏差提高,而准确度降低。

Random Forest 是经典的基于 Bagging 框架的模型,并在此基础上通过引入特征采样和样本采样来降低基模型间的相关性,在公式中显著降低方差公式中的第二项,略微升高第一项,从而使得整体降低模型整体方差。

# 为什么Boosting框架中的基模型必须为弱模型?

对于 Boosting 来说,由于基模型共用同一套训练集,所以基模型间具有强相关性,故模型间的相关系数近似等于 1,针对 Boosting 化简公式为:

通过观察整体方差的表达式我们容易发现:

  • 整体模型的方差等于基模型的方差,如果基模型不是弱模型,其方差相对较大,这将导致整体模型的方差很大,即无法达到防止过拟合的效果。因此,Boosting 框架中的基模型必须为弱模型。

  • 此外 Boosting 框架中采用基于贪心策略的前向加法,整体模型的期望由基模型的期望累加而成,所以随着基模型数的增多,整体模型的期望值增加,整体模型的准确度提高。

基于 Boosting 框架的 Gradient Boosting Decision Tree 模型中基模型也为树模型,同 Random Forrest,我们也可以对特征进行随机抽样来使基模型间的相关性降低,从而达到减少方差的效果。