Xgboost的sklearn介面引數說明
阿新 • • 發佈:2018-11-29
1 from xgboost.sklearn import XGBClassifier 2 model=XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1, 3 colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0, 4 max_depth=3, min_child_weight=1, missing=None, n_estimators=100, 5 n_jobs=1, nthread=None, objective='binary:logistic', random_state=0, 6 reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None, 7 silent=True, subsample=1)
base_score: [default=0.5]
- 所有例項的初始預測得分,整體偏倚。
booster: [default=gbtree]
- gbtree: tree-based models,樹模型做為基分類器
- gblinear: linear models,線性模型做為基分類器
colsample_bylevel: [default=1]
- 指的是樹的每個層級分裂時子樣本的特徵所佔的比例,這個一般很少用。因為subsample和colsample_bytree組合做的事與之類似。
colsample_bytree:[default=1]
- 指的是每棵樹隨機選取的特徵的比例,取值範圍(0,1]。
gamma:[default=0]
- 損失閾值,在樹的一個葉節點上進一步分裂所需的最小損失減少量,gamma值越大,演算法越保守。取值範圍為:[0,∞]
learning_rate:[default=0.1]
- 學習率,控制每次迭代更新權重時的步長。值越小,訓練的越慢。取值範圍:[0,1]。典型值為0.01~0.2
max_delta_step:[default=0]
- 每棵樹的最大權重估計。如果它的值被設定為0,意味著沒有約束;如果它被設定為一個正值,能夠權重的變化將會變得相對保守。通常這個引數不會被使用,但如果是極度不平衡的邏輯迴歸將會有所幫助。把它範圍設定為1-10之間也許能控制更新。 取值範圍為:[0,∞]
max_depth:[default=3]
- 每個基本學習器樹的最大深度,用於防止過擬合問題。通過CV調參。典型值:3~10
min_child_weight:[default=1]
- 拆分節點權重和閾值
- 如果節點的樣本權重和小於該閾值,就不再進行拆分。線上性迴歸模型中,這個是指建立每個模型所需要的最小樣本數。
- 值越大,演算法越保守。取值範圍為:[0,∞]
- 用於防止過擬合問題:較大的值能防止過擬合,過大的值會導致欠擬合問題
- 需要通過CV調參
missing:[default=None]
- 在資料中,標註為缺失值的表示。如果為None,則預設為np.nan
n_estimators:[default=100]
- 估計器的數量
n_jobs:[default=1]
- 執行緒數目
nthread:[default=None]
- 主要用於平行計算,系統的核心數需要作為變數。如果希望執行所有的核心,就不需要設定該引數,程式會自己檢測到該值。
objective:指的是需要被最小化的損失函式。
- “reg:linear” 線性迴歸
- “reg:logistic” 邏輯迴歸
- “binary:logistic” 二分類的邏輯迴歸,返回的是預測概率(不是類別)
- “binary:logitraw” 二分類的邏輯迴歸,返回的結果為wTx
- “count:poisson” 計數問題的poisson迴歸,輸出結果為poisson分佈。在poisson迴歸中,max_delta_step的預設值為0.7。(used to safeguard optimization)
- “multi:softmax” 採用softmax目標函式處理多分類問題,需要多設定一個引數num_class(類別個數),返回預測的類別(不是概率)。
- “multi:softprob” 和multi:softmax引數類似,但是輸出結果是每個樣本屬於各個類別的概率。
- “rank:pairwise” set XGBoost to do ranking task by minimizing the pairwise loss
random_state:[default=0]
reg_alpha:[default=0]
- L1 regularization term on weights,這個主要是用在資料維度很高的情況下,可以提高執行速度
reg_lambda:[default=1]
- L2 regularization term on weights,這個其實用的很少
scale_pos_weight:[default=1]
- 處理樣本不平衡問題。在樣本高度不平衡時,將引數設定大於0,可以加快演算法收斂。
seed:[default=None]
- 隨機數種子,設定它可以復現隨機資料的結果,也可以用於調整引數。
silent:[default=True]
- silent=True時,不輸出中間過程(預設)
- silent=Flase時,輸出中間過程
subsample:[default=1]
- 隨機選取一定比例的樣本來訓練樹。設定為0.5,則意味著XGBoost將從整個樣本集合中隨機的抽取出50%子樣本建立樹模型,這能夠防止過擬合。
- 取值範圍為:(0,1]。減小這個引數的值,演算法會更加保守,避免過擬合。但是,如果這個值設定得過小,它可能會導致欠擬合。 典型值:0.5-1。