iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
1

Xgboost (eXtreme Gradient Boosting)是大規模並行boosted tree的工具,它是目前最快最好的開源boosted tree工具包。
所謂Boosting,就是將弱分離器 f_i(x) 組合起來形成強分類器 F(x) 的一種方法。

Xgboost是一種gradient boosting decision tree,可以用於分類也可以用於迴歸問題。Gradient boosting 就是通過加入新的弱學習器,來努力糾正前面所有弱學習器的殘差,最終這樣多個學習器相加在一起用來進行最終預測,準確率就會比單獨的一個要高。之所以稱為 Gradient,是因為在添加新模型時使用了梯度下降算法來最小化的損失。

(1). Regression Tree (CART)迴歸樹
https://ithelp.ithome.com.tw/upload/images/20181026/20112538mGZAoy1Z9o.png

(2). Regression Tree Ensemble 迴歸樹集成
https://ithelp.ithome.com.tw/upload/images/20181026/20112538zsmdXK0wud.png

在上面的例子中,我們用兩棵樹來進行預測。我們對於每個樣本的預測結果就是每棵樹預測分數的和。

(3). Objective for Tree Ensemble 得到學習目標函數
https://ithelp.ithome.com.tw/upload/images/20181026/20112538rOBVIgxwNn.png

這裏是構造一個目標函數,然後我們要做的就是去嘗試優化這個目標函數。讀到這裏,感覺與gbdt好像沒有什麼區別,確實如此,不過在後面就能看到他們的不同了(構造(學習)模型參數)。

Gradient Boosting (How do we Learn,如何學習)
https://ithelp.ithome.com.tw/upload/images/20181026/201125386LACLVpW84.png

Define the Complexity of Tree 樹的複雜度項
https://ithelp.ithome.com.tw/upload/images/20181026/20112538y3BviHKVif.png

從圖中可以看出,xgboost算法中對樹的複雜度項增加了一個L2正則化項,針對每個葉結點的得分增加L2平滑,目的也是為了避免過擬合

The Structure Score 這個score你可以理解成類似於信息增益的一個指標,在切分點查找算法中用到。

https://ithelp.ithome.com.tw/upload/images/20181026/201125389tdThCW8Kf.png

練習用XGboost分類iris datahttps://ithelp.ithome.com.tw/upload/images/20181026/20112538myBnyAvaKM.png

https://ithelp.ithome.com.tw/upload/images/20181026/20112538ZOy786mo9n.png

產生訓練好的model Dataraw.txt
https://ithelp.ithome.com.tw/upload/images/20181026/20112538st9czuS2Jm.png

preds = bst.predict(dtest)
預測結果如下

https://ithelp.ithome.com.tw/upload/images/20181026/20112538goCnGPZ233.png

參考來源:
xgboost入門與實戰(原理篇)
https://hk.saowen.com/a/54abf0cb5f9967dd8da2a8f7ef4126dca5d475de7ddd4debc901f6d11ab3718b
XGboost決策過程
http://bangqu.com/798c8e.html
Kaggle 神器 XGBoost 入門:為什麼要用它?怎麼用?
https://weiwenku.net/d/100778240


上一篇
CNN和RNN比較
下一篇
知識圖譜
系列文
自然語言技術與AI/ML初探30

尚未有邦友留言

立即登入留言