Skip to content

Instantly share code, notes, and snippets.

@templateaholic10
Last active August 16, 2018 15:10
Show Gist options
  • Save templateaholic10/120f6f172360cfb3c2f6b592a830445e to your computer and use it in GitHub Desktop.
Save templateaholic10/120f6f172360cfb3c2f6b592a830445e to your computer and use it in GitHub Desktop.
XGBoostのメモ
  • LibSVM形式
  • Handle inbalanced dataset : AUC evaluation + scale_pos_weight + max_delta_step
  • 過学習の解消
    • モデルの複雑度
      • max_depth : 木の最大深さ.大きくすると決定木は複雑になる
      • min_child_weight : それぞれの葉に含まれる訓練データの重みの和(典型的には訓練データの個数そのもの)はこれ以上でなければならない/これ未満になるとき,ノードは分割されない.大きくすると決定木は単純になる
      • gamma / min_split_loss : 葉1つあたりのloss.大きくすると決定木は単純になる
      • lambda : L2ノルムの係数
      • alpha : L1ノルムの係数
      • eta / learning_rate (step size) : 葉の値の割引率.木が完成したのちに葉の値を割引き,残りの木に押し付ける残差を大きくする.lambdaは正則化によって葉の値を縮めるが,etaは後から直接割り引く.小さくすると学習が安定するが,より多くの木が必要になる(num_roundを大きくする)
      • num_round : ブースティングのラウンド数/決定木の数
    • ランダム化
      • subsample : 各決定木の学習ごとに異なるデータのサブサンプルを用いる.デフォルトは1で各学習で全データを用いる
      • colsample_bytree : 各決定木の学習ごとに異なる特徴量のサブサンプルを用いる.デフォルトは1で各学習で全特徴量を用いる
      • colsample_bylevel : 決定木の各分岐ごとに異なる特徴量のサブサンプルを用いる.デフォルトは1で各分岐で全特徴量を用いる
    • 偏りのあるデータ
      • scale_pos_weight : デフォルトは1.偏りがある場合はsum(負例) / sum(正例)とかにする
      • max_delta_step : データに偏りがあるときに利用
      • eval_metric : バリデーションに用いる評価関数.デフォルトは目的関数だが偏りがある場合はAUCなどにする
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment