1. 程式人生 > >boosting-adaboost、GBDT、xgboost、lightGBM

boosting-adaboost、GBDT、xgboost、lightGBM

提升方法,是將多個專家的判斷進行適當的綜合所得出的判斷,要比其中任何一個專家單獨的判斷好。
Kearns和Valiant提出了“強可學習”和“弱可學習”的概念
強可學習:在概率近似正確學習的框架中,一個概念(一個類),如果存在一個多項式的學習演算法能夠學習它,並且正確率很高,這個概念被稱為強可學習
弱可學習:一個概念,如果一個多項式學習演算法能夠學習它,學習的正確率僅比隨機猜測略好
Schapore後來證明強可學習與弱可學習是等價的

對於分類問題而言,給定訓練樣本集,訓練弱分類器比訓練強分類器容易得多,提升方法就是從弱學習演算法出發,得到一系列弱分類器(弱而不同)並組合成強分類器

1 adaboost

大多數提升方法都是改變訓練資料的概率(權值)分佈,針對不同的訓練資料分佈呼叫弱學習演算法的一系列弱分類器

從而,兩個問題需要解答:
(1),每一輪如何改變訓練資料的權值分佈?
adaboost將分類作物的樣本權值提高,降低分類正確的樣本權值,從而使分類錯誤的樣本得到更大的關注
(2),如何將弱分類器組合成一個強分類器?
adaboost採用加權多數表決方法

1.1 adaboost演算法描述

adaboost如何將這些想法自然且有效地實現在一種演算法裡
具體演算法描述
給定二分類訓練資料集T={(x1,y1),(x2,y2),...,(xN,yN)}
其中每個樣本點由例項和標記構成,例項x

iχRn,標記yiy={1,+1}
χ是例項空間,y是標記集合
演算法(Adaboost):
輸入:訓練資料集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xiχRnyiy={1,+1}
輸出:最終分類器G(x)
(1)初始化訓練資料的權值分佈

D1=(ω11,ω12,...,ω1N),ω1i=1N,i=1,2,...,N(1.1)
(2)對m=1,2,...,N
(a)適用具有權值分佈的Dm的訓練資料集學習,得到基本分類器Gm(x):χ{1,+1}
(b)計算Gm(x)在訓練資料集上的分類誤差率em=P(Gm(xiyi)=i=1N
ωmiI(Gm(xiyi)
(1.2)

(c)計算Gm(x) 的係數αm=12ln1emem(1.3)
(d)更新訓練資料集的權值分佈
Dm+1=(ωm1,ωm2,...,ωmN)
ωm+1,i=ωmiZmexp(