gbdtを使ったfeature transformationの適用例
TRANSCRIPT
![Page 1: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/1.jpg)
GBDTを使ったfeature transformationの適用例
担当: @Quasi_quant2010
データサイエンスLT祭り 2夜目 @Quasi_quant20101
【データサイエンスLT祭り 2夜目】
![Page 2: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/2.jpg)
概要- 特徴量の相関(非線形性)をGDBTで抽出 -
データサイエンスLT祭り 2夜目 @Quasi_quant20102
ケース
予測ラベル:年収が高い・低い
feature:年齢・教育年数・投資損失・労働時間/週, etc
例えば、(労働時間/週, 投資利益)の二つを組み合わせた時、労働時間は短いが、投資利益が高い人は高い傾向にあるはず
ドメイン知識より、Featureをand条件の組み合わせで非線形featureは作れる
ただし、観測したfeatureが多い場合、組み合わせは指数爆発
そもそも、人間がゼロから非線形featureを設計するのは大変
非線形性の設計をGBDTで処理した後、線形モデルで予測
前処理 分類器
![Page 3: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/3.jpg)
実験結果- 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 educationeducation-num
39 State-gov male Bachelors 13
50Self-emp-not-inc
female Bachelors 13
注2) 5-Fold注3) ** : Best Score注4) カテゴリカル変数は全てOne-hot-encoding
データセット例
予測結果
![Page 4: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/4.jpg)
参考- GBDTとは -
PAC Learning
Boostingとは弱学習器をたくさん集めて強学習器を作ろう
機械学習
PAC Learningを損失関数を最小化する問題として再定義、損失を最小化する方向を探すのに勾配情報を使っているので、Gradient Boosting
ポイント
negative gradientを最小二乗近似し、弱学習器を推定
詳しくは
[Quasi_quant2010c] を参照
データサイエンスLT祭り 2夜目 @Quasi_quant20104
![Page 5: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/5.jpg)
前処理(イメージ図)- 非線形性の設計を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
TransoformedFeatures
線形モデルで予測
GBDTの原理が損失を最小化するように木を追加するという点で根拠をもち、決定木が複数and条件の情報も有する非線形変換が可能
A B
![Page 6: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/6.jpg)
実験結果- FeatureImportanceと正則化path -
データサイエンスLT祭り 2夜目 @Quasi_quant20106
Feature間のand条件を考慮可
age * hours-parweek等
Blendingは損失関数と正則化関数の組み合わせを比較
損失関数 : Logistic-Loss or Hinge Loss
正則化関数 : L1 or L2
Ridge回帰でBlending
![Page 7: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/7.jpg)
考察①- サンプルデータの振り返り -
モデルの振り返り
GBDTがfeature間の相関をうまく処理したか
作ったtreeに関し、max_depthが8なので、うまく処理できた
ただし、実務ではHyper-paramsを忍耐強く調整する必要あり
実務を想定した振り返り
施策単体が有効なのか、複合要因なのか
今回のデータでは、施策複合も有効だった
部門単体により増収効果という報告があった場合それは、誤りであることがモデル上確認できる
決算上事実かは、非線形featureを基に収益を追跡すればよい
モデル話ではビジネスサイドが納得できないので、考察をビジネスサイドの手触り感に近づけることも重要
データサイエンスLT祭り 2夜目 @Quasi_quant20107
![Page 8: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/8.jpg)
考察②(実務という視点で)- 施策への示唆を得られることが最も重要 -
α,βなど、施策単体を評価するのではなく、施策の組み合わせを評価できる枠組みなので、より客観的な振り返りが可能
施策単体しか評価できないとPDCAを回し切るのに時間がかかる
観測した特徴量をモデルで非線形変換しているものの、隠れ変数を導入していないため、単体施策(feature) や複合施策(非線形feature)に関する振り返りが可能
単体施策
GBDTのfeature importance
複合施策
非線形変換したfeatureのweight(線形モデルのfeature weight)
featureの安定性も加味する事も可能で、持続効果もわかる
データサイエンスLT祭り 2夜目 @Quasi_quant20108
![Page 9: GBDTを使ったfeature transformationの適用例](https://reader036.vdocuments.net/reader036/viewer/2022092623/587199a21a28ab044e8b56bd/html5/thumbnails/9.jpg)
参考文献 **[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