一. 確定最佳決策樹數(shù)量
選擇較高的學習速率(learning rate)蕴坪。一般情況下,學習速率的值為0.1敬锐。但是背传,對于不同的問題,理想的學習速率有時候會在0.05到0.3之間波動台夺。選擇對應(yīng)于此學習速率的理想決策樹數(shù)量续室。XGBoost有一個很有用的函數(shù)“cv”,這個函數(shù)可以在每一次迭代中使用交叉驗證谒养,并返回理想的決策樹數(shù)量。
先給定boosting主要參數(shù)一個初始值明郭,后續(xù)再進行調(diào)優(yōu)买窟。
1、max_depth = 5 :這個參數(shù)的取值最好在3-10之間薯定。我選的起始值為5始绍,但是你也可以選擇其它的值。起始值在4-6之間都是不錯的選擇话侄。
2亏推、min_child_weight = 1:在這里選了一個比較小的值学赛,因為這是一個極不平衡的分類問題。因此吞杭,某些葉子節(jié)點下的值會比較小盏浇。
3、gamma = 0: 起始值也可以選其它比較小的值芽狗,在0.1到0.2之間就可以绢掰。這個參數(shù)后繼也是要調(diào)整的。
4童擎、subsample,colsample_bytree = 0.8: 這個是最常見的初始值了滴劲。典型值的范圍在0.5-0.9之間。
5顾复、scale_pos_weight = 1: 這個值是因為類別十分不平衡班挖。
二. 主要參數(shù)調(diào)優(yōu)
對于給定的學習速率和決策樹數(shù)量,進行決策樹特定參數(shù)調(diào)優(yōu)(max_depth, min_child_weight, gamma, subsample, colsample_bytree)芯砸。
這里通常使用GridSearch萧芙。可先尋找max_depth乙嘀、min_child_weight末购,確定后,再對gamma虎谢、subsample等調(diào)優(yōu)盟榴。
三. xgboost的正則化參數(shù)的調(diào)優(yōu)。(lambda, alpha)婴噩。這些參數(shù)可以降低模型的復(fù)雜度擎场,從而提高模型的表現(xiàn)。
四. 降低學習速率几莽,確定理想?yún)?shù)迅办。
參數(shù)
xgboost 中,objective 是模型學習任務(wù)參數(shù)(learning task parameters)中的目標參數(shù)章蚣,它指定訓練任務(wù)的目標站欺。
objective 參數(shù)詳解
objective
參數(shù)默認值為 reg:squarederror
。
-
reg:squarederror
:以均方差(即 MSE)損失函數(shù)為最小化的回歸問題任務(wù)纤垂。 -
reg:squaredlogerror
:以均方根對數(shù)誤差為最小化的回歸問題任務(wù)矾策。 -
reg:logistic
:邏輯回歸的二分類,評估默認使用均方根誤差(rmse)峭沦。 -
reg:pseudohubererror
:以 Pseudo-Huber 損失函數(shù)的回歸問題贾虽。 -
reg:gamma
:使用對數(shù)鏈接(log-link)進行伽馬回歸。輸出是伽馬分布的平均值吼鱼。例如蓬豁,對于建模保險索賠嚴重性或?qū)赡苁琴ゑR分布的任何結(jié)果绰咽,它可能很有用。 -
reg:tweedie
:使用對數(shù)鏈接(log-link)進行 Tweedie 回歸地粪。常用于建模保險的總損失取募,或用于可能是 Tweedie-distributed 的任何結(jié)果。 -
binary:logistic
:邏輯回歸的二分類驶忌,輸出的也是分類的概率矛辕,和reg:logistic
一樣,不同的是默認采用錯誤率評估指標付魔。 -
binary:logitraw
:邏輯回歸的二分類聊品,但在進行邏輯回歸轉(zhuǎn)換之前直接輸出分類得分。 -
binary:hinge
:基于 Hinge 損失函數(shù)的二分類几苍,預(yù)測輸出不是 0 就是 1翻屈,而不是分類的概率值。 -
count:poisson
:基于泊松回歸的計數(shù)任務(wù)妻坝,輸出泊松分布的平均值伸眶。-
max_delta_step
:可以設(shè)置該值,默認為 0.7刽宪。
-
-
survival:cox
:基于 Cox 風險比例回歸模型的生存分析任務(wù)厘贼,如癌癥患者生存概率等。 -
survival:aft
:基于加速失效模型(aft)的生存分析任務(wù)圣拄。 -
aft_loss_distribution
:概率密度函數(shù)嘴秸,基于survival:aft
和 aft-nloglik 作為評價指標。 -
multi:softmax
:使用 softmax 多分類器的多分類任務(wù)庇谆,返回預(yù)測的類別岳掐,同時也要設(shè)置分類的個數(shù)。 -
multi:softprob
:和 softmax 一樣饭耳,但是輸出的一個形式為ndata * nclass
的向量串述,可以進一步將矩陣 reshape 成 ndata * nclass 的指標,輸出的是每個類別的概率值寞肖。 -
rank:pairwise
:使用 LambdaMART 進行文檔對方法排名(pairwise)纲酗,并使成對損失最小化。 -
rank:ndcg
:使用 LambdaMART 進行文檔列表方法排名(listwise)新蟆,并使標準化折讓累積收益(NDCG)最大化耕姊。 -
rank:map
:使用 LambdaMART 進行文檔列表方法排名(listwise),并使平均準確率(MAP)最大化栅葡。