gbdtを使ったfeature transformationの適用例

9
GBDTを使った feature transformationの適用例 担当: @Quasi_quant2010 データサイエンスLT祭り 2夜目 @Quasi_quant2010 1 データサイエンスLT祭り 2夜目

Upload: takanori-nakai

Post on 08-Jan-2017

787 views

Category:

Science


2 download

TRANSCRIPT

Page 1: GBDTを使ったfeature transformationの適用例

GBDTを使ったfeature transformationの適用例

担当: @Quasi_quant2010

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

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

Page 2: GBDTを使ったfeature transformationの適用例

概要- 特徴量の相関(非線形性)をGDBTで抽出 -

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

ケース

予測ラベル:年収が高い・低い

feature:年齢・教育年数・投資損失・労働時間/週, etc

例えば、(労働時間/週, 投資利益)の二つを組み合わせた時、労働時間は短いが、投資利益が高い人は高い傾向にあるはず

ドメイン知識より、Featureをand条件の組み合わせで非線形featureは作れる

ただし、観測したfeatureが多い場合、組み合わせは指数爆発

そもそも、人間がゼロから非線形featureを設計するのは大変

非線形性の設計をGBDTで処理した後、線形モデルで予測

前処理 分類器

Page 3: GBDTを使ったfeature transformationの適用例

実験結果- 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の適用例

参考- GBDTとは -

PAC Learning

Boostingとは弱学習器をたくさん集めて強学習器を作ろう

機械学習

PAC Learningを損失関数を最小化する問題として再定義、損失を最小化する方向を探すのに勾配情報を使っているので、Gradient Boosting

ポイント

negative gradientを最小二乗近似し、弱学習器を推定

詳しくは

[Quasi_quant2010c] を参照

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

Page 5: GBDTを使ったfeature transformationの適用例

前処理(イメージ図)- 非線形性の設計を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の適用例

実験結果- 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の適用例

考察①- サンプルデータの振り返り -

モデルの振り返り

GBDTがfeature間の相関をうまく処理したか

作ったtreeに関し、max_depthが8なので、うまく処理できた

ただし、実務ではHyper-paramsを忍耐強く調整する必要あり

実務を想定した振り返り

施策単体が有効なのか、複合要因なのか

今回のデータでは、施策複合も有効だった

部門単体により増収効果という報告があった場合それは、誤りであることがモデル上確認できる

決算上事実かは、非線形featureを基に収益を追跡すればよい

モデル話ではビジネスサイドが納得できないので、考察をビジネスサイドの手触り感に近づけることも重要

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

Page 8: GBDTを使ったfeature transformationの適用例

考察②(実務という視点で)- 施策への示唆を得られることが最も重要 -

α,βなど、施策単体を評価するのではなく、施策の組み合わせを評価できる枠組みなので、より客観的な振り返りが可能

施策単体しか評価できないとPDCAを回し切るのに時間がかかる

観測した特徴量をモデルで非線形変換しているものの、隠れ変数を導入していないため、単体施策(feature) や複合施策(非線形feature)に関する振り返りが可能

単体施策

GBDTのfeature importance

複合施策

非線形変換したfeatureのweight(線形モデルのfeature weight)

featureの安定性も加味する事も可能で、持続効果もわかる

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

Page 9: GBDTを使ったfeature transformationの適用例

参考文献 **[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