7. 机器学习技法--Blending and Bagging

Lecture 7:Blending and Bagging

7.1 Motivation of Aggregation

                                    图 7-1

       图 7-1 中所描述的算法过程和 Andrew Ng 提到的局部加权回归有点神似。稍微发散一下,对于有限的 hypothesis sets 中每个 hypothesis 都在某些局部数据有很好的表现,我们可以用某种算法把这些 hypothesis 组合起来,这样就不需要在通过 feature transfromation 在一个很高的  VC Dimension 做计算(另外在 high VC Dimension 计算出的模型有更高的过拟合风险)。通用的 aggregation 算法有 bagging、boosting、stack, 对于某个具体的问题应该存在更好的 aggregation 算法Q1?(暂时不知道)

     不同于决策树、SVM 这些算法,aggregation method 从另外一个维度提高算法的精确性。《西瓜书》给出为什么 aggregation 为什么能起作用的原因,如图 7-3 所示。

                             图  7-2 

 

                                              图 7-3

先看一个 aggregation 的例子,如图 7-4 所示。图 7-4 中有个很有趣的现象,即最终的 aggregation 得到线是 large-margin (记得 SVM 的 large-Margin 否)

                                     图 7-4

7.2 Uniform Blending

       假设我们已经有一堆算法,那么该怎么把这些算法组合起来?在图 7-1 中谈到一些可用的策略。现在我们考虑一种较为简单的方法,一视同仁地看待所有算法,根据投票数据决定结果。

       先看一张图,如图 7-5 所示

                                      图 7-5

从图 7-5 看出,不需要根据具体算法设计的特定的策略。采用简单 uniform blending 就能获得更稳定的模型!

7.3 Linear and Any Blending

         上一节,我们讨论的是 uniform blending。这节我们来讨论一下 linear blending。linear blending 的公式如图 7-6 所示

                                          图 7-6

      图 7-6 中公式中 g 不是很好选(如果 hypothesis 是无限的,岂不是无解), 另外 $\alpha_{n}$ 也不是很好求出。一般会按照图 7-7 所示的方法来选择 $g_{t}$。

如果按照 in-sample 最小的原则来选 $g_{t}$ 就会有一定的风险,即 aggregation hypothesis 的 VC Dimension 会很大。如图7-8 所示(我赞成用 CV 误差来选 g,但是用 Ein 真的能加大 VC Dimension?而且真的有那么严重?)

                                  图 7-7

                                             图 7-8

对于 linear blending,一般是先用 $g^-_{1}, g^-_{2}...g^-_{n}$ 计算出 $\alpha_{1},...\alpha_{n}$。最后返回的是 $g_{1}, g_{2},...g_{n}$。这个方法和之前的机器学习过程有点类似,即先找到一个验证集上最小的 g 后合并训练集和验证集再训练一个模型!

 先看一个真实的案例,KDDCup 上冠军作品。如图 7-9 所示

                                           图 7-9

7.4 Bagging (Bootstrap Aggregation)

      到目前为止,我们讨论了几种 aggregation 方法。但是这些方法都是建立在有一堆 $g_{t}$ 的基础上。那么现在的问题就是我们如何获得 $g_{t}$ 呢?

                               图 7-10

课程的建议是围绕着 diversity 做文章,如图 7-11 所示

                                      图  7-12

       根据  Diversity 选择的 g 真的是最好的?如果某个 g 在验证集上中的准确率不到 50%,同时对于 hypothesis 无限的情况下如何获得 g ?Q2   

 应该是没有很好的理论支持,所以暂时可以认为根据 Diversity 来选算法是个不错的方法!

 还有个隐藏的问题。对于有无限的样本的训练集合,当然可以做出很多的 g 来做 aggregation。如果可用的训练数据有限,那该如何解决这个问题?

我们采用的方法叫做 bootstrap aggregationQ3,如图 7-13 所示。

             图 7-13

我们来看下,bootstrap aggregation 的性能

                                                       图  7-14

最终,贴上本章总结

                                 图  7-15

题外话:

T1:以前只见过 bagging 和 boosting,在这里学了 stack!。aggregation 算法的目的不是用于找到最好的算法,而是找到一个稳定的算法!(boosting 算法不能这么说!!)

Q1: 谁知道呢?

Q2:怎么办啊? 只要 Diversity 就好?

Q3: bootstrap aggregation 算法 (BAGging),有没有类似 OOB 的概念。(后续阅读 RF 论文的时候,要再补充一下相关资料)。就 boostrap sample 而言,它并没有给出为什么基于它的 aggregation 算法会很好。因为用 random 数据做计算和用全量数据做计算并没有区别(其实是有区别的,比如计算的结果可能是局部最优解而不是理论上全局最优解!具体的可以参考图 7-3)

关键字:数学证明!

 

posted @ 2018-01-09 20:03  tmortred  阅读(208)  评论(0)    收藏  举报