Ensemble模型的基础概念。算法
先总结概括几个aggregation的常见形式:bootstrap
多选一的形式特别须要那几个里面有一个表现好的,若是表现都不太好的时候,几个模型融合到一块儿真的会表现好吗?app
左图:若是只能用垂直的线和水平的线作分类,结果确定不是太好,可是若是能把垂直的线和水平的线结合起来,就有可能作出这一条好的分割线;3d
右图:PLA会在能够分割的线中随机选一条,可是若是他们能投票的话,投票的线就会获得一个中庸的结果,就是那个黑线。orm
在知道了aggregate会表现好以后,下面介绍到底怎么样进行融合:blog
blending的前提是知道了几个g,结合的时候投票就行了:数学
classification的时候:it
可是这几个已知的g要不同才行,同样的话仍是没有什么意义;io
若是这些g很不同的话,本质就是得出一个少数服从多数的结果。form
regression的时候:作一个平均
也就是说,当咱们已知的g差别很大的时候,融合起来的表现必定比单个g表现要好。
数学证实:
从上式能够看出,一个演算法的表现能够分红两个部分:
Blending的过程就是一个减小方差(variance)的过程,这个过程可让表现更加的稳定。
下面介绍Linear Blending:从一人一票改为没人投票是有权重的,这个权重又是线性的。
一个好的αt的标准就是最小化Ein:
linear blending = linear model + hypotheses transform + constraints
α在二元分类问题中反过来其实也没什么,这样的话那个constraints也能够去掉了:
linear blending和model selection的区别:
若是用Ein的话,有不少的缺点,因此建议用validation error来作标准。
因此,以前说的blending是先把全部的g算出来,再作融合,那么咱们能不能一边算g,一边融合呢?
怎么样保证g的多样性呢?
那么同一份数据能不能创造g的多样性呢?
bootstrapping:一个统计学的工做,其目的是从有限的数据中“模拟”更多的数据出来。其实就是放回抽样。这样的话,同一笔数据有可能被抽取屡次,也有可能一次都没有被抽取。
boostrap就是bagging。这个bagging的算法在base algorithm对随机很敏感的时候表现好。
总结: