https://blog.csdn.net/weixin_41580067/article/details/86220782
關(guān)于分類算法我看過最好的一篇文章了
- 對(duì)于缺失值污它,xgboost將其劃分為左子樹和右子樹驯用,然后比較左子樹和右子樹的score,取最大的score為缺失值劃分方向
參數(shù)
一般參數(shù)
(1) booster [default=gbtree]骂删,助推器[默認(rèn)gbtree]
選擇要在每次迭代時(shí)運(yùn)行的模型類型掌动。它有2個(gè)選項(xiàng):
gbtree:基于樹的模型,gblinear:線性模型
(2)silent [default=0]宁玫,無聲模式[default = 0]:
靜音模式激活設(shè)置為1粗恢,即不會(huì)打印正在運(yùn)行的消息。
取0時(shí)表示打印出運(yùn)行時(shí)信息欧瘪,有助于理解模型眷射。
(3)nthread [默認(rèn)為未設(shè)置的最大線程數(shù)]
運(yùn)行時(shí)的線程數(shù)(并行處理)。缺省值是當(dāng)前系統(tǒng)可以獲得的最大線程數(shù)
(4)num_pbuffer:預(yù)測緩沖區(qū)大小佛掖,通常設(shè)置為訓(xùn)練實(shí)例的數(shù)目妖碉。緩沖用于保存最后一步的預(yù)測結(jié)果,無需人為設(shè)置芥被。
(5)num_feature:Boosting過程中用到的特征維數(shù)喜命,設(shè)置為特征個(gè)數(shù)贤重。XGBoost會(huì)自動(dòng)設(shè)置拗馒,無需人為設(shè)置崖飘。
助推器參數(shù)
max_depth [default=6] :樹的最大深度,缺省值為6 匹中,取值范圍為:[1,∞]蚀狰。用于控制過擬合,因?yàn)楦叩纳疃葘⒃试S模型學(xué)習(xí)特定于特定樣本的關(guān)系职员,需要使用CV函數(shù)來進(jìn)行調(diào)優(yōu)麻蹋,典型值:3-10
max_leaf_nodes:樹中終端節(jié)點(diǎn)或葉子的最大數(shù)量,可以代替max_depth焊切。gamma [default=0] :Gamma指定節(jié)點(diǎn)分裂所需的最小損失函數(shù)下降值扮授。 這個(gè)參數(shù)的值越大,算法越保守专肪,該值可能會(huì)根據(jù)損失函數(shù)而有所不同刹勃,因此應(yīng)進(jìn)行調(diào)整。 取值范圍為:[0,∞]
eta [default=0.3] :為了防止過擬合嚎尤,更新過程中用到的收縮步長荔仁。在每次提升計(jì)算之后,算法會(huì)直接獲得新特征的權(quán)重。 eta通過縮減特征的權(quán)重使提升計(jì)算過程更加保守乏梁,使模型更健壯次洼。缺省值為0.3 ,取值范圍為:[0,1]
min_child_weight [default=1] :子節(jié)點(diǎn)最小樣本權(quán)重和遇骑。如果一個(gè)葉子節(jié)點(diǎn)的樣本權(quán)重和小于min_child_weight卖毁,則拆分過程結(jié)束。在線性回歸模型中落萎,該參數(shù)是指建立每個(gè)模型所需要的最小樣本數(shù)亥啦。可用于避免過擬合练链,值較大時(shí)可以避免模型學(xué)習(xí)到局部的特殊樣本翔脱,但值過高時(shí)會(huì)導(dǎo)致欠擬合∶焦模可用CV來調(diào)整碍侦,范圍:[0,∞]
助推器參數(shù)
subsample [default=1] :用于訓(xùn)練模型的子樣本占整個(gè)樣本集合的比例,能夠防止過擬合隶糕,取值范圍為:(0,1]
colsample_bytree [default=1] :在建立樹時(shí)對(duì)特征采樣的比例,缺省值為1 站玄,取值范圍為:(0,1]
Linear Booster參數(shù):
alpha [default=0] :L1 正則的懲罰系數(shù)
lambda [default=0] :L2 正則的懲罰系數(shù)
lambda_bias :在偏置上的L2正則枚驻。缺省值為0
學(xué)習(xí)任務(wù)參數(shù)
- objective [ default=reg:linear ]
定義學(xué)習(xí)任務(wù)及相應(yīng)的學(xué)習(xí)目標(biāo),可選的目標(biāo)函數(shù)如下:
reg:linear —— 線性回歸株旷。
reg:logistic—— 邏輯回歸再登。
binary:logistic—— 二分類的邏輯回歸問題,輸出為概率晾剖。
binary:logitraw—— 二分類的邏輯回歸問題锉矢,輸出的結(jié)果為wTx。
count:poisson—— 計(jì)數(shù)問題的poisson回歸齿尽,輸出結(jié)果為poisson分布沽损。
multi:softmax——讓XGBoost采用softmax目標(biāo)函數(shù)處理多分類問題,同時(shí)需要設(shè)置參 數(shù)num_class(類別個(gè)數(shù))
multi:softprob ——和softmax一樣循头,輸出的是ndata * nclass的向量绵估,可以將該向量reshape成 ndata行nclass列的矩陣。每行數(shù)據(jù)表示樣本所屬于每個(gè)類別的概率卡骂。
rank:pairwise——set XGBoost to do ranking task by minimizing the pairwise loss
- eval_metric [ default according to objective ]
校驗(yàn)數(shù)據(jù)所需要的評(píng)價(jià)指標(biāo)国裳,不同的目標(biāo)函數(shù)將會(huì)有缺省的評(píng)價(jià)指標(biāo)
(rmse for regression, and error for classification, mean average precision for ranking)
用戶可以添加多種評(píng)價(jià)指標(biāo),可供的選擇如下:
rmse 均方根誤差
mae 平均絕對(duì)誤差
logloss 負(fù)對(duì)數(shù)似然函數(shù)值
error 二分類錯(cuò)誤率(閾值為0.5)
merror 多分類錯(cuò)誤率
mlogloss 多分類logloss損失函數(shù)
auc 曲線下面積
- seed [ default=0 ] 隨機(jī)數(shù)的種子全跨。缺省值為0
關(guān)于base_score:
base_score就是總體的均值缝左,對(duì)于二元分類問題,base_score就是1占據(jù)的比重;對(duì)于回歸問題渺杉,base_score就是整體的均值蛇数。
如果樣本有權(quán)重,base_score就應(yīng)該設(shè)置為加權(quán)均值少办。
base_score相當(dāng)于是迭代的初始的起點(diǎn)苞慢,如果設(shè)置base_score的話,并且設(shè)置為總體均值的話英妓,應(yīng)該能夠起到加快收斂的效果挽放,但是即使沒有設(shè)置base_score,只要Learning rate適當(dāng)蔓纠,迭代步數(shù)夠多辑畦,設(shè)置base_score與否也不影響最終結(jié)果。