Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GBDTを使ったfeature transformationの適用例

16,416 views

Published on

データサイエンスLT祭り 2夜目

Published in: Science
  • Be the first to comment

GBDTを使ったfeature transformationの適用例

  1. 1. GBDTを使った feature transformationの適用例 担当: @Quasi_quant2010 データサイエンスLT祭り 2夜目 @Quasi_quant20101 【データサイエンスLT祭り 2夜目】
  2. 2. 概要 - 特徴量の相関(非線形性)をGDBTで抽出 - データサイエンスLT祭り 2夜目 @Quasi_quant20102  ケース  予測ラベル:年収が高い・低い  feature:年齢・教育年数・投資損失・労働時間/週, etc  例えば、(労働時間/週, 投資利益)の二つを組み合わせた時、 労働時間は短いが、投資利益が高い人は高い傾向にあるはず  ドメイン知識より、Featureをand条件の組み合わせで 非線形featureは作れる  ただし、観測したfeatureが多い場合、組み合わせは指数爆発  そもそも、人間がゼロから非線形featureを設計するのは大変  非線形性の設計をGBDTで処理した後、線形モデルで予測 前処理 分類器
  3. 3. 実験結果 - Stacking+Blending ≒ GBDT+LR > LR -  GBDTのMax_Depthは8  独立に見えるfeatureに非線形性があった データサイエンスLT祭り 2夜目 @Quasi_quant20103 Model accuracy precision recall f-value LR 8.35e-01 9.22e-01 8.67e-01 8.94e-01 GDBT+LR **8.63e-01 **9.31e-01 8.91e-01 9.11e-01 Stacking+ Blending 8.62e-01 9.30e-01 **8.92e-01 **9.11e-01 注1) 計算データ : Adult Data Set (goo.gl/GzB8bS) age workclass sex education education- num 39 State-gov male Bachelors 13 50 Self-emp- not-inc female Bachelors 13 注2) 5-Fold 注3) ** : Best Score 注4) カテゴリカル変数は 全てOne-hot-encoding データセット例 予測結果
  4. 4. 参考 - GBDTとは -  PAC Learning  Boostingとは弱学習器をたくさん集めて強学習器を作ろう  機械学習  PAC Learningを損失関数を最小化する問題として再定義、 損失を最小化する方向を探すのに勾配情報を使っているので、 Gradient Boosting  ポイント  negative gradientを最小二乗近似し、弱学習器を推定  詳しくは  [Quasi_quant2010c] を参照 データサイエンスLT祭り 2夜目 @Quasi_quant20104
  5. 5. 前処理(イメージ図) - 非線形性の設計をGBDTで処理 -  2つの決定木のアンサンブル例  一つは3つのleaf node(A)  一つは2つのleaf node(B)  データ例  Aの2番目のleaf nodeに到達  Bの1番目のleaf nodeに到達  非線形変換後のfeatureは [0,1,0,1,0] となる データサイエンスLT祭り 2夜目 @Quasi_quant20105 引用 [H.Xinran, etc] Figure1 Input Features Transoformed Features 線形モデル で予測 GBDTの原理が損失を最小化するように木を追加するという点で根拠 をもち、決定木が複数and条件の情報も有する非線形変換が可能 A B
  6. 6. 実験結果 - FeatureImportanceと正則化path - データサイエンスLT祭り 2夜目 @Quasi_quant20106  Feature間のand条件を考慮可  age * hours-parweek等  Blendingは損失関数と正則化関 数の組み合わせを比較  損失関数 : Logistic-Loss or Hinge Loss  正則化関数 : L1 or L2 Ridge回帰でBlending
  7. 7. 考察① - サンプルデータの振り返り -  モデルの振り返り  GBDTがfeature間の相関をうまく処理したか  作ったtreeに関し、max_depthが8なので、うまく処理できた  ただし、実務ではHyper-paramsを忍耐強く調整する必要あり  実務を想定した振り返り  施策単体が有効なのか、複合要因なのか  今回のデータでは、施策複合も有効だった  部門単体により増収効果という報告があった場合 それは、誤りであることがモデル上確認できる  決算上事実かは、非線形featureを基に収益を追跡すればよい  モデル話ではビジネスサイドが納得できないので、 考察をビジネスサイドの手触り感に近づけることも重要 データサイエンスLT祭り 2夜目 @Quasi_quant20107
  8. 8. 考察②(実務という視点で) - 施策への示唆を得られることが最も重要 -  α,βなど、施策単体を評価するのではなく、施策の組み合わ せを評価できる枠組みなので、より客観的な振り返りが可能  施策単体しか評価できないとPDCAを回し切るのに時間がかかる  観測した特徴量をモデルで非線形変換しているものの、 隠れ変数を導入していないため、単体施策(feature) や複 合施策(非線形feature)に関する振り返りが可能  単体施策  GBDTのfeature importance  複合施策  非線形変換したfeatureのweight(線形モデルのfeature weight)  featureの安定性も加味する事も可能で、持続効果もわかる データサイエンスLT祭り 2夜目 @Quasi_quant20108
  9. 9. 参考文献  **[H.Xinran, etc] Practical Lessons from Predicting Clicks on Ads at Facebook. ADKDD14  [C.Zhicheng, etc] Optimal Action Extraction for Random Forests and Boosted Trees. KDD15  [Quasi_quant2010a] Gradient Boostingについて - Scikit-Learnを 使ったfeature transformation(GBDT + LR vs LR) - goo.gl/Pkto81  [Quasi_quant2010b] Stacking - テンプレート化編・計算編② - goo.gl/jXSrw8  [Quasi_quant2010c] Gradient Boostingについて - 準備編 - goo.gl/tng0vl  [Quasi_quant2010d] Gradient Boostingについて - 正則化編・ Xgboost – goo.gl/dBQqYc データサイエンスLT祭り 2夜目 @Quasi_quant20109

×