日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xgboost分类_XGBoost(Extreme Gradient Boosting)

發(fā)布時間:2024/7/5 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xgboost分类_XGBoost(Extreme Gradient Boosting) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、XGBoost在Ensemble Learning中的位置

機器學(xué)習(xí)中,有一類算法叫集成學(xué)習(xí)(Ensemble Learning),所謂集成學(xué)習(xí),指將多個分類器的預(yù)測結(jié)果集成起來,作為最終預(yù)測結(jié)果,它要求每個分類器具備一定的“準(zhǔn)確性”和“差異性”。通俗理解,集成學(xué)習(xí)的思想就是“三個臭皮匠,頂個諸葛亮”,多個弱分類器聯(lián)合起來變成強分類器。集成學(xué)習(xí)根據(jù)分類器之間的依賴關(guān)系,劃分為Boosting和Bagging兩大門派,XGBoost(由華盛頓大學(xué)的陳天奇等人提出,因XGBoost出眾的訓(xùn)練速度和準(zhǔn)確率,受到廣泛關(guān)注和應(yīng)用)屬于Boosting算法,它是在GBDT基礎(chǔ)上的優(yōu)化算法,如下圖:

二、XGBoost的基本思想和舉例

XGBoost算法的基本思想跟GBDT類似,不斷地通過特征分裂生長一棵樹,每一輪學(xué)習(xí)一棵樹,其實就是去擬合上一輪模型的預(yù)測值與實際值之間的殘差。當(dāng)訓(xùn)練完成,得到k棵樹,如果要預(yù)測一個樣本的分?jǐn)?shù),其實就是根據(jù)這個樣本的特征,在每棵樹中落到對應(yīng)的一個葉子節(jié)點,每個葉子節(jié)點對應(yīng)一個分?jǐn)?shù),最后只需將每棵樹對應(yīng)的分?jǐn)?shù)加起來就是該樣本的預(yù)測值。

未完待續(xù)……

三、XGBoost在GBDT基礎(chǔ)上做了哪些優(yōu)化?

1、導(dǎo)數(shù)信息:GBDT只用到一階導(dǎo)數(shù)信息,而XGBoost對損失函數(shù)做二階泰勒展開,引入一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。 2、基分類器:GBDT以傳統(tǒng)CART作為基分類器,而XGBoost不僅支持CART決策樹,還支持線性分類器,相當(dāng)于引入L1和L2正則化項的邏輯回歸(分類問題)和線性回歸(回歸問題)。 3、特征采樣:XGBoost借鑒RF的做法,即類似RandomForestClassifier的max_features,支持列抽樣,不僅能防止過擬合,還能降低計算量。 4、正則項:XGBoost的目標(biāo)函數(shù)加了正則化項控制模型的復(fù)雜度,防止模型過擬合。 5、并行化:XGBoost支持并行,不是tree維度上的并行,而是特征維度上的并行,決策樹最耗時的步驟是對特征的值排序,XGBoost在迭代之前,先進行預(yù)排序,將每個特征按特征值排好序,存為塊結(jié)構(gòu),分裂結(jié)點時可以采用多線程并行查找每個特征的最佳分割點(計算增益最大的特征進行下一步分裂),極大提升訓(xùn)練速度。 6、缺失值:當(dāng)樣本的特征值存在缺失值時,XGBoost能自動學(xué)習(xí)出它的默認分裂方向。

四、兩種方法控制 XGBoost的過擬合(訓(xùn)練精度高而測試精度低)

方法1:直接控制模型的復(fù)雜度(max_depth,min_child_weight,gamma)max_depth:每棵樹的最大深度限制。min_child_weight:子節(jié)點的最小權(quán)重,如果某個子節(jié)點權(quán)重小于這個閾值,則不會在分裂。gamma:分裂所帶來的損失最小閾值,大于此值,才會繼續(xù)分裂。 方法2:增加隨機性,使訓(xùn)練對噪聲強健(subsample,colsample_bytree,減小步長eta且增加迭代次數(shù)num_round )subsample:用于訓(xùn)練模型的子樣本占整個樣本集合的比例,能防止過擬合,取值范圍為(0,1].colsample_bytree:訓(xùn)練每棵樹時用來訓(xùn)練的特征的比例,類似 RandomForestClassifier 的 max_features,在建立樹時對特征采樣的比例,缺省值為1,取值范圍(0,1].eta:每次迭代完成后更新權(quán)重時的步長,越小訓(xùn)練越慢,缺省值為0.3,取值范圍為[0,1].num_round :總共迭代的次數(shù)。

五、XGBoost中偏差(Bias)與方差(Variance)的權(quán)衡

Bias-Variance是機器學(xué)習(xí)/統(tǒng)計學(xué)中一個重要的概念。當(dāng)模型變得復(fù)雜時(例如樹的深度更深),模型具有更強的擬合訓(xùn)練數(shù)據(jù)的能力,產(chǎn)生一個低偏差的模型,但是,復(fù)雜的模型容易過擬合,需要更多的數(shù)據(jù)來擬合。XGBoost中的大部分參數(shù)都是關(guān)于偏差和方差的權(quán)衡,最好的模型應(yīng)該仔細地將模型復(fù)雜性(擬合能力)與其預(yù)測能力進行權(quán)衡。

六、使用XGBoost的示例代碼

# step1:導(dǎo)入模塊 import xgboost as xgb # step2:讀取數(shù)據(jù) dtrain = xgb.DMatrix('demo/data/train.csv') dtest = xgb.DMatrix('demo/data/test.csv') # step3:指定參數(shù) param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic' } # 二分類的邏輯回歸問題,輸出為概率值。 num_round = 2 # step4:訓(xùn)練 bst = xgb.train(param, dtrain, num_round) # step5:預(yù)測 preds = bst.predict(dtest)

參考資料:

XGBoost官網(wǎng):https://xgboost.apachecn.org/#/

XGBoost20題:https://blog.csdn.net/weixin_38753230/article/details/100571499

XGBoost算法:https://www.cnblogs.com/mantch/p/11164221.html

總結(jié)

以上是生活随笔為你收集整理的xgboost分类_XGBoost(Extreme Gradient Boosting)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。