1. 程式人生 > >class-提升方法Boosting

class-提升方法Boosting

tro 區別 每次 src 解釋 cal 基本 其中 boosting

1 AdaBoost算法
2 AdaBoost訓練誤差分析
3 AdaBoost algorithm 另外的解釋
3.1 前向分步算法
3.2 前向分步算法與AdaBoost
4 提升樹
4.1 提升樹模型
4.2 梯度提升


Boosting在分類問題中,通過改變訓練樣本的權重,學習多個分類器,並將這些分類器進行線性組合,提高分類性能。AdaBoost最具代表性,由Freund和Schapire在1995年提出;Boost樹在2000年由Friedman提出

1 AdaBoost算法

基本思想:對於分類而言,給定一個訓練樣本集,求比較粗糙的分類規則(弱分類器)比強分類器容易得多。因此此方法就是從弱分類器出發,反復學習,得到一系列弱分類器(基本分類器),然後組合成一個強分類器。Boosting方法大多是改變訓練數據的權值分布,針對不同訓練數據分布調用弱分類器進行一系列學習的方法。如何改變訓練數據的權值或概率分布?

提高前一輪弱分類器錯誤分類的樣本的權值,而降低正確分類樣本的權值,這樣錯誤分類的樣本在本次弱分類器中就被更大的關註,一次分類問題就被一系列分類器分而治之。如何組合這一組弱分類器?——加權多數表決的方法,加大無誤差率低的弱分類器的權值,減小誤差率大的弱分類器的權值,讓其在表決中起較小作用。
算法:
技術分享圖片
技術分享圖片
說明:
步驟一中,權值分布采取均勻分布得到權值向量D1,在原始數據上學習分類器;
步驟二中,m表示輪數,m=1表示第一輪學習過程。
(a)使用當前權值向量Dm加權訓練集,學習基本分類器Gm(x)。
(b)計算基本分類器在加權訓練集上的誤分類率em,可以看出Gm(x)的分類誤差率是誤分類樣本權重之和

(c) Gm的系數就是在最終組合分類器所占的權重,表示此分類器的重要性。em小於1/2時,alpham>=0,隨著誤分類率的減小而增大,所以誤分類率越小的基本分類器在最終分類器所起的作用越大。
(d)中更新權值分布,為下一輪做準備,其實yGm相乘是驗證此個樣本值分類的正確性,正確則同號,同號則為正,為正則指數部分為負數,就減少此樣本值的分量,減少的多少由alpha決定。即
技術分享圖片
步驟三中,f(x)的線性組合實現了M個基本分類器的加權表決,系數alpha是基本分類器的重要性。註意這裏的alpha之和不為1。f(x)的符號表示實例的類別,絕對值的大小表示分類的確信度。最終sign得到強分類器G(x)。

在具體執行過程中,可以每次都進行組合然後得到誤分類點,直到誤分類點為0為止或者達到m的最大值M為止

2 AdaBoost訓練誤差分析

定理:訓練誤差的界:
技術分享圖片
證明:
技術分享圖片
定理:二類分類的AdaBoost訓練誤差界:
技術分享圖片技術分享圖片
證明:
技術分享圖片
技術分享圖片
推論:
技術分享圖片表明AdaBoost誤差界以指數速率下降。
註意:AdaBoost算法不需要知道下界γ,具有適應性adaptive Boosting

3 AdaBoost algorithm 另外的解釋

這個解釋是AdaBoost算法模型是加法模型,損失函數是指數函數,學習算法為前向分步算法時的二類分類學習方法。

3.1 前向分步算法

加法模型(additive model)
技術分享圖片
其中,b為基函數,γ為基函數的參數;β為基函數的系數;
給定訓練集和損失函數L(y,f(x))條件下,學習加法模型f成為風險極小化或損失函數極小化的問題:
技術分享圖片
前向分步算法(forward stagewise algorithm)求解思路是:因為學習的模型是加法模型,如果能夠從前向後,每一步只學習一個基函數及其系數,逐步逼近優化函數目標(上式),那麽就可以簡化優化的復雜度。因此,每步只需優化如下損失函數:
技術分享圖片
算法明細:
技術分享圖片

3.2 前向分步算法與AdaBoost

定理:AdaBoost算法是前向分步算法的特例,model為基本分類器組成的加法模型,損失函數是指數函數。
證明:根據算法流程對比二者並無區別,需要註意的是前向分步算法的損失函數是指數損失函數(exponential loss function)
技術分享圖片
技術分享圖片

4 提升樹

Boosting Tree被認為是統計學習中性能最好的方法之一,以分類樹或回歸樹為基本分類器的提升方法。

4.1 提升樹模型

提升方法實際上采用的是加法模型(基函數的線性組合)與前向分步算法。以決策樹為基函數的提升方法稱為提升樹。對分類問題的決策樹是二叉分類樹,對回歸問題的決策樹是二叉回歸樹。基本分類器xv可以看做由一個根結點直接連接兩個葉子結點的簡單決策樹,即決策樹樁(decision stump)。提升樹模型可以表示為決策樹的加法模型:
技術分享圖片
提升算法采用前向分步算法,首先確定初始提升樹技術分享圖片,則第m步的模型是技術分享圖片
經驗最小化函數:技術分享圖片,m-1表示當前樹,經驗最小化函數可以確定下一個樹的決策參數。
不同問題的提升樹學習算法,主要區別是使用的損失函數不同(回歸問題:平方誤差損失函數;分類問題指數損失函數)。
回歸問題
已知訓練集T={(x1,x2),…(xN,yN)},x屬於Rn,y屬於R,如果將輸入空間劃分為J個互不相交的區域R1,…,RJ,並且在每個區域上確定輸出常量cj,樹可表示為
技術分享圖片
其中,技術分享圖片表示樹的區域劃分和各區域上常數(類)。J是回歸樹的復雜度即葉子結點個數。
回歸提升樹使用前向分步算法:
技術分享圖片
前向分步算法第m步,給定當前模型fm-1,需求:技術分享圖片
當采用平方誤差損失函數時, 技術分享圖片
代入得:
技術分享圖片
這裏,技術分享圖片是當前模型擬合數據的殘差(residual)
回歸樹算法:
技術分享圖片
技術分享圖片

4.2 梯度提升

當損失函數不是平方誤差函數或者指數函數時,優化並不簡單,故提出梯度提升(gradient Boosting)算法,關鍵是利用損失函數的負梯度在當前模型的值
技術分享圖片作為回歸問題中殘差的近似值擬合回歸樹。
梯度提升算法:
技術分享圖片
技術分享圖片

class-提升方法Boosting