全是坑,嚶嚶哭泣= =
- 簡述下Boosting的工作原理
Boosting主要幹兩件事:調整訓練樣本分佈,使先前訓練錯的樣本在後續能夠獲得更多關注
集成基學習數目
Boosting主要關注降低偏差(即提高擬合能力) - 描述下Adaboost和權值更新公式
Adaboost算法是“模型爲加法模型、損失函數爲指數函數、學習算法爲前向分佈算法”時的二類分類學習方法。
Adaboost有兩項內容:提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值;加大分類錯誤率小的弱分類器的權值。
步驟一:初始化訓練數據的權值分佈,一開始賦予相同的權值1N
步驟二:多輪迭代
a. 帶權的訓練數據集進行學習,得到基本的二分類器Gm(x)
b. 計算帶權的分類誤差率em=∑Ni=1wmiI(Gm(xi)≠yi)
c. 計算Gm(x) 的係數αm=12log1−emem
注:αm 隨em 的減小而增大,所以分類誤差率越小的基本分類起在最終分類起中的作用越大,加大了分類錯誤率小的弱分類器的權值。
d. 更新訓練數據集的權值分佈
wm+1,i=wmiZmexp(−αmyiGm(xi))
Zm=∑Ni=1wmiexp(−αmyiGm(xi)
注意到Gm 是一個二分類器
步驟三:組合各個弱分類器
f(x)=∑Mm=1αmGm(x) - 請問(決策樹、Random Forest、Boosting、Adaboost)GBDT和XGBoost的區別是什麼?
而隨機森林Random Forest是一個包含多個決策樹的分類器。至於AdaBoost,則是英文”Adaptive Boosting”(自適應增強)的縮寫,關於AdaBoost可以看下這篇文章《Adaboost 算法的原理與推導》。GBDT(Gradient Boosting Decision Tree),即梯度上升決策樹算法,相當於融合決策樹和梯度上升boosting算法。
@Xijun LI:xgboost類似於gbdt的優化版,不論是精度還是效率上都有了提升。與gbdt相比,具體的優點有: 1.損失函數是用泰勒展式二項逼近,而不是像gbdt裏的就是一階導數 2.對樹的結構進行了正則化約束,防止模型過度複雜,降低了過擬合的可能性 3.節點分裂的方式不同,gbdt是用的gini係數,xgboost是經過優化推導後的