xgboost參數及調參


常規參數General Parameters

  1. booster[default=gbtree]:選擇基分類器,可以是:gbtree,gblinear或者dart。gbtree和draf基於樹模型,而gblinear基於線性模型。
  2. slient[default=0]:是否有運行信息輸出,設置為1則沒有運行信息輸出。
  3. nthread[default to maximum number of threads available if not set]:線程數,默認使用能使用的最大線程數。

模型參數Booster Parameters

  1. eta[default=0.3]:收縮參數,也即學習率。用於更新葉節點權重時,乘該系數,避免步長過大。參數值越大,越可能無法收斂。把eta設置的小一些,小的學習率可以使后面的學習更加仔細。
  2. min_child_weight[default=1]:每個葉子里面的h的和至少是多少,這個參數非常影響結果,控制葉子節點中二階導的和的最小值,該參數越小,越容易過擬合。
  3. max_depth[default=6]:每棵樹的最大深度,該參數設置越大,越容易過擬合。
  4. max_leaf_nodes:最大葉節點數,和max_depth類似。
  5. gamma[default=0]:后剪枝時,用於控制是否后剪枝。
  6. max_delta_step[default=0]:該參數可以使得更新更加平緩,如果取0表示沒有約束,如果取正值則使得更新步驟更加保守,防止更新時邁的步子太大。
  7. subsample[default=1]:樣本隨機樣本,該參數越大,越容易過擬合,但設置過大也會造成過擬合。
  8. colsample_bytree[default=1]:列采樣,對每棵樹生成時用的特征進行列采樣,一般設置為0.5-1
  9. lambda[default=1]:模型的L2正則化參數,參數越大,越不容易過擬合。
  10. alpha[default=0]:模型的L1正則化參數,參數越大,越不容易過擬合。
  11. scale_pos_weight[default=1]:如果取值大於0,在類別樣本偏斜時,有助於快速收斂。

學習任務參數(Learning Task Parameters)

  1. objective[default=reg:linear]:定義最小化損失函數類型,常用參數:
  • binary:logistic –二元分類的邏輯回歸模型,返回預測概率(p(y=1|x,w))
  • multi:softmax –使用softmax objective的多類分類模型,返回預測的分類。這里需要設置一個額外的num_class參數,表示類的個數。
  • multi:softprob –與softmax相同,但是返回每個數據點屬於每個類的預測概率。
  1. eval_metric[default according to objective]:用於衡量驗證數據的參數,即是各評價標准,常用參數如下:
  • rmse – root mean square error
  • mae – mean absolute error
  • logloss – negative log-likelihood
  • error – Binary classification error rate (0.5 threshold)
  • merror – Multiclass classification error rate
  • mlogloss – Multiclass logloss
  • auc: Area under the curve
  1. seed[default=0]:隨機種子,用於產生可復現的結果。
    這里,xgboost與sklearn的命名風格有點區別,如:
  • eta->learning_rate
  • lambda->reg_lambda
  • alpha->reg_alpha

參數調優

  1. import必要的庫

     #Import libraries:
     import pandas as pd
     import numpy as np
     import xgboost as xgb
     from xgboost.sklearn import XGBClassifier
     from sklearn import cross_validation, metrics   #Additional     scklearn functions
     from sklearn.grid_search import GridSearchCV   #Perforing grid search
    
     import matplotlib.pylab as plt
     %matplotlib inline
     from matplotlib.pylab import rcParams
     rcParams['figure.figsize'] = 12, 4
    
     train = pd.read_csv('train_modified.csv')
     target = 'Disbursed'
     IDcol = 'ID'
    

注意,這里import兩種XGBoost:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM