Ensemble模型的基礎概念。
先總結歸納幾個aggregation的常見形式:
多選一的形式特別需要那幾個里面有一個表現好的,如果表現都不太好的時候,幾個模型融合到一起真的會表現好嗎?
左圖:如果只能用垂直的線和水平的線做分類,結果肯定不是太好,但是如果能把垂直的線和水平的線結合起來,就有可能做出這一條好的分割線;
右圖:PLA會在可以分割的線中隨機選一條,但是如果他們能投票的話,投票的線就會得到一個中庸的結果,就是那個黑線。
在知道了aggregate會表現好之后,下面介紹到底怎么樣進行融合:
blending的前提是知道了幾個g,結合的時候投票就好了:
classification的時候:
但是這幾個已知的g要不一樣才行,一樣的話還是沒有什么意義;
如果這些g很不一樣的話,本質就是得出一個少數服從多數的結果。
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對隨機很敏感的時候表現好。
總結: