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對隨機很敏感的時候表現好。
總結: