机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)

lecture 13:blending and bagging(自举、装袋)

目录

1聚合aggregation的原因

Aggregation Models,将不同的hypothesis和features结合起来,让模型更好。

  • 将介绍其中的两个方法,一个是Blending(混合),一个是Bagging。

首先举个例子来说明为什么要使用Aggregation。

假如你有T个朋友,每个朋友向你预测推荐明天某支股票会涨还是会跌,对应的建议分别是g1,g2,⋯,gT,那么你该选择哪个朋友的建议呢?即最终选择对股票预测的gt(x)是什么样的?

(1)第一种方法是从T个朋友中选择一个最受信任,对股票预测能力最强的人,直接听从他的建议就好。这是一种普遍的做法,对应的就是validation思想,即选择犯错误最小的模型。

(2)第二种方法,如果每个朋友在股票预测方面都是比较厉害的,都有各自的专长,那么就同时考虑T个朋友的建议,将所有结果做个投票,一人一票,最终决定出对该支股票的预测。这种方法对应的是uniformly思想。

(3)第三种方法,如果每个朋友水平不一,有的比较厉害,投票比重应该更大一些,有的比较差,投票比重应该更小一些。那么,仍然对T个朋友进行投票,只是每个人的投票权重不同。这种方法对应的是non-uniformly的思想。

(4)第四种方法与第三种方法类似,但是权重不是固定的,根据不同的条件,给予不同的权重。比如如果是传统行业的股票,那么给这方面比较厉害的朋友较高的投票权重,如果是服务行业,那么就给这方面比较厉害的朋友较高的投票权重。

以上所述的这四种方法都是将不同人不同意见融合起来的方式,接下来我们就要讨论如何将这些做法对应到机器学习中去。

Aggregation的思想与这个例子是类似的,即把多个hypothesis结合起来,得到更好的预测效果。

  • 将刚刚举的例子的各种方法用数学化的语言和机器学习符号归纳表示出来,其中G(x)表示最终选择的模型。

机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)
第一种方法只是从众多可能的hypothesis中选择最好的模型,并不能发挥集体的智慧。而Aggregation的思想是博采众长,将可能的hypothesis优势集合起来,将集体智慧融合起来,使预测模型达到更好的效果。

aggregation的两个优势:feature transform和regularization

我们之前在机器学习基石课程中就介绍过,feature transform和regularization是对立的,还把它们分别比作踩油门和踩刹车。如果进行feature transform,那么regularization的效果通常很差,反之亦然。也就是说,单一模型通常只能倾向于feature transform和regularization之一,在两者之间做个权衡。但是aggregation却能将feature transform和regularization各自的优势结合起来,好比把油门和刹车都控制得很好,从而得到不错的预测模型。

2uniform blending

那对于我们已经选择的性能较好的一些矩gt,如何将它们进行整合、合并,来得到最佳的预测模型呢?这个过程称为blending。

最常用的一种方法是uniform blending,应用于classification分类问题,做法是将每一个可能的矩赋予权重1,进行投票,得到的G(x)表示为:
机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)

3linear and any blending(stacking)

上一部分讲的是uniform blending,即每个gt所占的权重都是1,求平均的思想。下面我们将介绍linear blending,每个gt赋予的权重αt并不相同,其中αt≥0。我们最终得到的预测结果等于所有gt的线性组合
机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)
机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)

  • 除了linear blending之外,还可以使用任意形式的blending。linear blending中,G(t)是g(t)的线性组合;
  • any blending中,G(t)可以是g(t)的任何函数形式(非线性)。这种形式的blending也叫做Stacking。

any blending的优点是模型复杂度提高,更容易获得更好的预测模型;
缺点是复杂模型也容易带来过拟合的危险。

4Bagging(Bootstrap Aggregation:引导聚合)

blending的做法就是将已经得到的矩gt进行aggregate的操作。

具体的aggregation形式包括:uniform,non-uniforn和conditional。
机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)
现在考虑一个问题:如何得到不同的gt呢?

  • 可以选取不同模型H;
  • 可以设置不同的参数,例如η、迭代次数n等;
  • 可以由算法的随机性得到,例如PLA、随机种子等;
  • 可以选择不同的数据样本等。
  • 这些方法都可能得到不同的gt。

机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)
下面举个实际中Bagging Pocket算法的例子。如下图所示,先通过bootstrapping得到25个不同样本集,再使用pocket算法得到25个不同的gt,每个pocket算法迭代1000次。最后,再利用blending,将所有的gt融合起来,得到最终的分类线,如图中黑线所示。可以看出,虽然bootstrapping会得到差别很大的分类线(灰线),但是经过blending后,得到的分类线效果是不错的,则bagging通常能得到最佳的分类模型。
机器学习总结(lecture 13)算法:blending and bagging(自举、装袋)