1. 程式人生 > >集成學習實戰——Boosting(GBDT,Adaboost,XGBoost)

集成學習實戰——Boosting(GBDT,Adaboost,XGBoost)

tab 因此 說明 .html 預測概率 learn 參數說明 連續 決策

集成學習實踐部分也分成三塊來講解:

sklearn官方文檔:http://scikit-learn.org/stable/modules/ensemble.html#ensemble

1、GBDT

2、XGBoost

3、Adaboost

在sklearn中Adaboost庫分成兩個,分別是分類和回歸AdaBoostClassifier和AdaBoostRegressor

對於集成學習我們參數部分也分成框架跟基學習器的參數兩種

1、框架部分:

AdaBoostClassifier:http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier

AdaBoostRegressor:http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostRegressor.html#sklearn.ensemble.AdaBoostRegressor

技術分享圖片

技術分享圖片

參數說明:

base_estimator:弱學習器是什麽,default=DecisionTreeClassifier,

algorithm:這個參數只有AdaBoostClassifier有。主要原因是scikit-learn實現了兩種Adaboost分類算法,SAMME和SAMME.R。兩者的主要區別是弱學習器權重的度量,SAMME使用了和我們的原理篇裏二元分類Adaboost算法的擴展,即用對樣本集分類效果作為弱學習器權重,而SAMME.R使用了對樣本集分類的預測概率大小來作為弱學習器權重。由於SAMME.R使用了概率度量的連續值,叠代一般比SAMME快,因此AdaBoostClassifier的默認算法algorithm的值也是SAMME.R。我們一般使用默認的SAMME.R就夠了,但是要註意的是使用了SAMME.R, 則弱分類學習器參數base_estimator必須限制使用支持概率預測的分類器。SAMME算法則沒有這個限制。

loss:只有AdaBoostRegressor有,代表使用的損失是那種損失

技術分享圖片

n_estimators:弱學習器個數

learning_rate:學習率,也就是我們前面理論部分有講到正則化裏面的參數

技術分享圖片

2、基學習器

基學習器可選的有很多種,這裏舉例CART樹

技術分享圖片

與決策樹的參數一樣,可選擇的有很多,更多參考決策樹那篇

3、實戰

集成學習實戰——Boosting(GBDT,Adaboost,XGBoost)