Exploratory コミュニティ

ロジスティック回帰分析を正則化つきで実行する方法

#1

ロジスティック回帰分析を、正則化つき(L1/L2)で実行したいのですが、
実施したことがある方がいらっしゃいましたら、
どのように実装可能かアドバイスいただけませんでしょうか?
(ソースコードや、手順について参考になる記事など・・)

#2

@11140 さん

下記のExploratoryの記事の中に、e1071パッケージのsvmを実行した内容がありますので、下記の記事のスクリプトは参考になるかと思います。

実際には、glmnetパッケージを使って、

  • 正則化ロジスティック回帰モデルのformulaを受け入れ(標準化済み変数を想定)
  • 正則化パラメタのlambdaを決定するためにTVHまたはクロスバリデーション用にデータを分割
  • 適当なlambdaを計算
  • 適当なlambdaを用いて正則化ロジスティック回帰モデルを実行
  • 回帰係数を返す または テストデータを予測できるように返して評価

というような感じで関数を作成すれば実行可能かと思います。glmnetパッケージ以外にも、h2oパッケージ、tidymodelsパッケージでengineとしてglmnetを呼び出すなどでも同じようなことができると思います。

他にもH2OパッケージのRandomForestを実行した内容がありますので、下記の記事のスクリプトの例も参考になるかと思います。

#3

@sugiaki さま
ありがとうございます。アドバイスいただいた記事、参考にさせていただきます。
(Rスクリプト記述方法を学ばねば、な感じです。。)

1 Like