XGBoost參數調優完全指南(附Python代碼)


 

 

XGBoost參數調優完全指南(附Python代碼):http://www.2cto.com/kf/201607/528771.html

 

 https://www.zhihu.com/question/41354392

【以下轉自知乎】

https://www.zhihu.com/question/45487317

為什么xgboost/gbdt在調參時為什么樹的深度很少就能達到很高的精度?

 

XGBoost除去正則和並行的優化,我覺得和傳統GBDT最核心的區別是:
1. 傳統GBDT的每顆樹學習的是梯度,是損失函數在上一輪預測值的梯度,
所以喂給下一輪決策樹的樣本是,g_i 是損失函數L對上一輪預測值y_{i,t-1}處的梯度,
然后y_{i,t} = y_{i,t-1} - lambda * g_i;
2. 而XGBoost是直接學習的殘差,看論文里的分裂方法,就是在找每個葉子節點上最優的權重w_j,而這個值對應的是y - y_t;


作者:木葉
鏈接:https://www.zhihu.com/question/41354392/answer/120715099
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。
參加kaggle的時候,用xgboost/gbdt在在調參的時候把樹的最大深度調成6就有很高的精度了。但是用DecisionTree/RandomForest的時候需要把樹的深度調到15或更高。
用RandomForest所需要的樹的深度和DecisionTree一樣我能理解,因為它是用bagging的方法把DecisionTree組合在一起,相當於做了多次DecisionTree一樣。
但是xgboost/gbdt僅僅用梯度上升法就能用6個節點的深度達到很高的預測精度?
 
作者:於菲
鏈接:https://www.zhihu.com/question/45487317/answer/99153174
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。

一句話的解釋,來自周志華老師的機器學習教科書( 機器學習-周志華):Boosting主要關注降低偏差,因此Boosting能基於泛化性能相當弱的學習器構建出很強的集成;Bagging主要關注降低方差,因此它在不剪枝的決策樹、神經網絡等學習器上效用更為明顯。

隨機森林(random forest)和GBDT都是屬於集成學習(ensemble learning)的范疇。集成學習下有兩個重要的策略Bagging和Boosting。

Bagging算法是這樣做的:每個分類器都隨機從原樣本中做有放回的采樣,然后分別在這些采樣后的樣本上訓練分類器,然后再把這些分類器組合起來。簡單的多數投票一般就可以。其代表算法是隨機森林。Boosting的意思是這樣,他通過迭代地訓練一系列的分類器,每個分類器采用的樣本分布都和上一輪的學習結果有關。其代表算法是AdaBoost, GBDT。

其實就機器學習算法來說,其泛化誤差可以分解為兩部分,偏差(bias)和方差(variance)。這個可由下圖的式子導出(這里用到了概率論公式D(X)=E(X^2)-[E(X)]^2)。偏差指的是算法的期望預測與真實預測之間的偏差程度,反應了模型本身的擬合能力;方差度量了同等大小的訓練集的變動導致學習性能的變化,刻畫了數據擾動所導致的影響。這個有點兒繞,不過你一定知道過擬合。

如下圖所示,當模型越復雜時,擬合的程度就越高,模型的訓練偏差就越小。但此時如果換一組數據可能模型的變化就會很大,即模型的方差很大。所以模型過於復雜的時候會導致過擬合。
當模型越簡單時,即使我們再換一組數據,最后得出的學習器和之前的學習器的差別就不那么大,模型的方差很小。還是因為模型簡單,所以偏差會很大。

也就是說,當我們訓練一個模型時,偏差和方差都得照顧到,漏掉一個都不行。
對於Bagging算法來說,由於我們會並行地訓練很多不同的分類器的目的就是降低這個方差(variance) \mathbf{E}[h-\mathbb{E}(h)],因為采用了相互獨立的基分類器多了以后,h的值自然就會靠近\mathbb{E}(h).所以對於每個基分類器來說,目標就是如何降低這個偏差(bias),所以我們會采用深度很深甚至不剪枝的決策樹。

對於Boosting來說,每一步我們都會在上一輪的基礎上更加擬合原數據,所以可以保證偏差(bias),所以對於每個基分類器來說,問題就在於如何選擇variance更小的分類器,即更簡單的分類器,所以我們選擇了深度很淺的決策樹。
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM