1. 程式人生 > >機器學習筆記9-整合學習

機器學習筆記9-整合學習

機器學習筆記9-整合學習

整合學習(ensemble learning)通過構建並結合多個學習器來完成學習任務。下圖展示了整合學習的一般結構:先產生一組個體學習器,再用某種策略將它們結合起來。個體學習器通常由一個現有的演算法從訓練資料產生,如決策樹演算法、支援向量機演算法等。關於如何產生並結合“好而不同”的個體學習器是整合學習研究的核心。整合學習通過將多個學習器進行組合,常可獲得比單一學習器顯著優越的泛化效能。
在這裡插入圖片描述
根據個體學習器的生成方式,目前的整合學習方法大致分為兩類,即個體學習器間存在強依賴關係、必須序列生成的序列化方法,以及個體學習器間不存在強依賴關係、可同時生成的並行化方法;前者代表是Boosting,後者的代表是Bagging和“隨機森林”。

  1. Boosting
    Boosting的工作機制是:先從初始訓練集中訓練出一個基學習器,再根據基學習器的表現對訓練資料分佈(權值)進行調整,使得先前基學習器做錯的訓練樣本在後續受到更多關注,然後基於調整後的樣本分佈來訓練下一個基學習器;如此反覆進行,直至基學習器的數目達到事先指定的值T,最終將這T個基學習器進行加權結合。這其中,最具代表性的就是AdaBoost演算法。AdaBoost包含以下步驟:
    (1)初始化訓練資料的權值分佈 D 1

    = ( w 11 , w 12
    , . . . , w 1 N ) , w 1 i = 1 N , i = 1 , 2 , . . . , N {D_1}{\rm{ = (}}{w_{11}}{\rm{,}}{w_{12}}{\rm{,}}...{\rm{,}}{w_{1N}}{\rm{),}}{w_{1i}} = \frac{1}{N},i = 1,2,...,N
    (2)對 m = 1 , 2 , . . . , M m=1,2,...,M
    (a)使用具有權值分佈 D m D_m 的訓練資料集學習,得到基分類器 G m ( x ) : χ { 1 , + 1 } {G_m}(x):\chi \to \{ - 1, + 1\}
    (b)計算 G m ( x ) G_m(x) 在訓練資料集上的分類誤差率
    e m = i = 1 N P ( G m ( x i ) y i ) = i = 1 N w m i I ( G m ( x i ) y i ) {e_m} = \sum\limits_{i = 1}^N {P({G_m}({x_i}) \ne {y_i})} = \sum\limits_{i = 1}^N {{w_{mi}}I({G_m}({x_i}) \ne {y_i})}
    (c)計算 G m ( x ) G_m(x) 的係數 α m = 1 2 log 1 e m e m {\alpha _m} = \frac{1}{2}\log \frac{{1 - {e_m}}}{{{e_m}}}
    (d)更新訓練資料集的權值分佈
    D m + 1 = ( w m + 1 , 1 , w m + 1 , 2 , . . . , w m + 1 , N ) {D_{m + 1}}{\rm{ = (}}{w_{m + 1,1}}{\rm{,}}{w_{m + 1,2}}{\rm{,}}...{\rm{,}}{w_{m + 1,N}}{\rm{)}} w m + 1 , i = w m i Z m exp ( α m y i G m ( x i ) ) {w_{m + 1,i}} = \frac{{{w_{mi}}}}{{{Z_m}}}\exp ( - {\alpha _m}{y_i}{G_m}({x_i})) Z m = i = 1 N w m i exp ( α m y i G m ( x i ) ) {Z_m} = \sum\limits_{i = 1}^N {{w_{mi}}\exp ( - {\alpha _m}{y_i}{G_m}({x_i}))}
    (3)構建基分類器的線性組合 f ( x ) = m = 1 M α m G m ( x ) f(x) = \sum\limits_{m = 1}^M {{\alpha _m}{G_m}(x)}