Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Introduction of "the alternate features search" using R

2.250 visualizaciones

Publicado el

Introduction of the alternate features search using R, proposed in the paper. S. Hara, T. Maehara, Finding Alternate Features in Lasso, 1611.05940, 2016.

Publicado en: Datos y análisis
  • Hello! High Quality And Affordable Essays For You. Starting at $4.99 per page - Check our website! https://vk.cc/82gJD2
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Introduction of "the alternate features search" using R

  1. 1. 見落とされた変数に 救いの手を “FindingAlternate Features in Lassos” 1.“Finding Alternate Features in Lassos”の一部をRでトレースします (Satoshi Hara and Takanori Maehara (2016): "Finding Alternate Features in Lasso", in NIPS 2016 workshop on Interpretable Machine Learning for Complex Systems, December 10th, 2016.) 2.{glmnet} で実装して使ってみます Lassoにおける変数選択と代替候補となる変数の可視化 第58回R勉強会@東京(#TokyoR)
  2. 2. 変数選択(モデル選択) どうしてますか? オペレーションズ・リサーチ2013 年 5 月号,261-266 LASSO
  3. 3. Lasso の変数選択の問題点#2 #1 • 「変数の数>>サンプルサイズ」 なデータの扱い • http://www.slideshare.net/kato_kohaku/oracle-property-andhdmpkgrigorouslasso #2 • “Finding Alternate Features in Lassos”の論文紹介 • Rで線形回帰だけ実装したので{glmnet}の Lassoにおける変数選択と 代替候補となる変数を可視化 • 重回帰分析の前処理をとしての多重共線性のチェックを、二次工程に 回せるのでは? • 二値分類とかは本家のPythonで。
  4. 4. Lasso • 回帰モデルの係数 (β)の絶対値を大きくしたくない → 損失関数に罰則項を加えた目的関数L(β)とする 𝐿 𝛽 = 𝑓 𝑋𝛽, 𝑦 + 𝑃(𝛽) = 𝑓 𝑋𝛽, 𝑦 + 𝜆 𝛽 1 The Lasso optimal solution • この目的関数を最小化するような推定量(β*)を求める 𝛽∗ = argmin 𝛽 𝑓 𝑋𝛽, 𝑦 + 𝜆 𝛽 1
  5. 5. Lasso • 線形重回帰モデルで、最小二乗法で係数を推定をする場合: |β|の大きさに対する罰則項最小二乗法 λは罰則の大きさを 調整するパラメータ βの絶対値を大きさを 定数 t 以下に抑えたい 最小二乗法
  6. 6. Lassoの縮小推定(shrinkage) Hao Helen Zhang, Fall 2015 Lecture 12: Variable Selection - Lasso 推定された βj が0なら 変数 xj は 予測に貢献しない
  7. 7. Lassoの罰則項 soft-thresholding operator Hao Helen Zhang, Fall 2015 Lecture 12: Variable Selection - Lasso Lassoの推定量( )と、 最小二乗推定量( )には、 以下の関係がなりたつ λ
  8. 8. Lassoの罰則の強さと推定量と変数選択 λ log(λ) λが大きいほどLassoので0と推定される変数が増える
  9. 9. Lassoと変数選択 Lassoによって「よいモデル」を推定したい =最適な罰則の強さ(λ)の下で選ばれる 変数とその推定量を決めたい • λ → 0 (no penalty) では、罰則のない重回帰 • λ → ∞ では、定数項だけのモデル ※ 典型的にはcross-validation errorを眺めながら決める > plot(cv.glmnet(X, y)) > plot(glmnet(X, y) , xvar = "lambda") λ log(λ)
  10. 10. Lassoと変数選択: 見落としの問題 • 変数の数p がサンプルサイズnよりも多い場合(p>n)、 選択される説明変数はサンプルサイズを超えない → 幾つかの改良法が提案されている • http://www.slideshare.net/kato_kohaku/oracle-property-andhdmpkgrigorouslasso • 重要な変数のあいだに高い相関 がある場合、 それらの変数のうちの1つだけを選びたがる
  11. 11. https://arxiv.org/abs/1611.05940 変数間に高い相関がある場合の見落としに着目
  12. 12. 余談ですが..
  13. 13. https://arxiv.org/abs/1606.09066 https://github.com/sato9hara/defragTrees defragTrees の作者
  14. 14. この論文の提案: Alternate Lasso 選択された変数が使われなかった としたら 代わりにどの変数が選択されるか を出力 ↓ 複数の解候補を提示することで利用者に納得感を与える 特徴量たちの関係理解・結果の解釈性が高まると期待 著者らによる研究の説明から改変 http://www.prefield.com/commentary.html
  15. 15. Lassoを解きなおす: Alternate Lasso The Lasso optimal solution • この目的関数を最小化するような推定量(β*)を求める 𝛽∗ = argmin 𝛽 𝑓 𝑋𝛽, 𝑦 + 𝜆 𝛽 1 Alternate Lasso • Lasso推定量(β*)のうち β*i≠0, β*j=0 となる i,j の組について β*i=0, βj≠ 0 とおいて、β*jの推定量を求める 𝛽𝑗∗ = argmin 𝛽 𝑗 𝑓 𝑋𝛽∗ − 𝑋𝑖 𝛽𝑖∗ + 𝑋𝑗 𝛽𝑗+ , 𝑦 + 𝜆 𝛽 1 非ゼロ項について足し上げ β*i=0 βj≠ 0
  16. 16. 再推定 β*i=0, βj≠ 0 とおいて、β*jの推定量を求める 再推定された βj が0なら 変数 xj は xi を代替しない
  17. 17. Alternate Lassoの変数スコア • 「差し替えた後の目的関数値がほとんど変わらない」変数は、 オリジナルに近いと考える。つまり、 score(xi → xj ) が小さいほどオリジナルに近い ここで、 score 𝑥𝑖 → 𝑥𝑗 = 𝐿 𝛽 𝑖→𝑗 − 𝐿 𝛽∗ 𝐿 𝛽 は目的関数: 𝐿 𝛽 = 𝑓 𝑋𝛽, 𝑦 + 𝑃(𝛽) 𝛽∗はLassoが選んだ推定値 どれくらい代わりになるか?という指標(相対値)
  18. 18. 作った: Rでminimal • 線形回帰モデル • 最小二乗法 • soft-thresholding operator https://github.com/katokohaku/AlternateLassoR 著者のgithubのPython実装をみながら Rで実装
  19. 19. 動作確認: シンプルな人工データ • 重要な変数=X1, X2 • X1と相関: X3, X4 • X2と相関: X5 • 無関係な変数: X6
  20. 20. 作った: re-fit 作った: print() & summary() glmnetのLassoで 推定したβを解きなおす
  21. 21. 作った: plot()
  22. 22. 使ってみた: Boston Housing Data Set https://archive.ics.uci.edu/ml/datasets/Housing http://pythondatascience.plavox.info/scikit-learn/scikit-learn に付属しているデータセット/ 米国ボストン市郊外における 地域別の住宅価格のデータセット
  23. 23. 使ってみた: Boston Housing Data Set あとで再利用するので あらかじめデータを正規化 CVでλを見つつ 今回はλ.1SEを採用
  24. 24. 使ってみた: Boston Housing Data Set • Scoreの順と相関の大きさの順は概ね一致 • しないことも結構あるっぽい • 解釈はできるような、できないような.. 町毎の児童と教師の比率(ptratio) alt score cor 1 $10,000 ドルあたりの不動産税率の総計 tax 0.01382 0.460853 2 町毎の児童と教師の比率(ptratio) zn 0.015046 -0.39168 3 小売業以外の商業が占める面積の割合 indus 0.015151 0.383248 4 環状高速道路へのアクセスしやすさ rad 0.016183 0.464741 5 1940 年より前に建てられた物件の割合 age 0.016962 0.261515
  25. 25. まとめ やらなかったこと • Python版にあるpredict()とevaluate()の実装 • 予測はオリジナルのモデルでやればよいのでは。 • 線形回帰以外のモデル 所感など • 適用対象が広い • 適当な損失関数+罰則項の再最適化なので、適用対象がフレキシブル • 元論文(Python版)には、ロジスティックロス関数で2値分類する実装も有り • Scoreの順が変数間の相関と必ずしも一致しないので、Lassoの枠組みの中では、単純 に多重共線性を見るよりは良い? • 重回帰分析の前処理をとしての多重共線性のチェックを、二次工程に回せるのでは? 発展版の続報が出てた • Satoshi Hara and Takanori Maehara (2017): "Enumerate Lasso Solutions for Feature Selection", in Proceedings of the 31st AAAI Conference on Artificial Intelligence (AAAI'17), San Francisco. California, United States, February 4th--9th, 2017 • Python実装がすでに著者のGithubで公開中
  26. 26. 参考文献 • 紹介した論文 • Satoshi Hara and Takanori Maehara (2016): "Finding Alternate Features in Lasso", in NIPS 2016 workshop on Interpretable Machine Learning for Complex Systems, December 10th, 2016. • https://arxiv.org/abs/1611.05940 • 著者によるPython実装@Github: • Binary classificationあり、predict()あり。 • https://github.com/sato9hara/LassoVariants/tree/master/AlternateLasso • 著者らによる研究紹介 • http://www.prefield.com/commentary.html • 実装時の参考 • Lassoの理論と実装 -スパースな解の推定アルゴリズム- • http://qiita.com/hogefugabar/items/71916560f7efc6eededf

×