glmnet の紹介

Rで学ぶ caret を使った Machine Learning

Zach Mayer

Data Scientist at DataRobot and co-author of caret

glmnet の紹介

  • 変数選択を内蔵した GLM の拡張
  • 多重共線性や小標本に有効
  • 主に2種類
    • Lasso 回帰: 0でない係数の数を罰則
    • Ridge 回帰: 係数の大きさに罰則
  • 単純(簡潔)なモデルを探索
  • ランダムフォレストと相性が良い
Rで学ぶ caret を使った Machine Learning

glmnet モデルのチューニング

  • Lasso と Ridge の組み合わせ
  • 2つのモデルの混合を推定可能
  • alpha [0, 1]: 純粋な Ridge 〜 純粋な Lasso
  • lambda (0, infinity): 罰則の強さ
Rで学ぶ caret を使った Machine Learning

例: 「オーバーフィットしない」

# Load data
overfit <- read.csv("overfit.csv")

# Make a custom trainControl
myControl <- trainControl(
  method = "cv", 
  number = 10,
  summaryFunction = twoClassSummary,
  classProbs = TRUE, # <- Super important!
  verboseIter = TRUE
)
Rで学ぶ caret を使った Machine Learning

デフォルトを試す

# Fit a model
set.seed(42)
model <- train(
  y ~ ., 
  overfit, 
  method = "glmnet", 
  trControl = myControl
)

# Plot results
plot(model)
  • alpha を3値
  • lambda を3値
Rで学ぶ caret を使った Machine Learning

結果をプロット

3つの正則化パラメータに対する混合率別の交差検証ROC曲線の折れ線グラフ。正則化パラメータの中間値で混合率0.55付近にピークがある。

Rで学ぶ caret を使った Machine Learning

練習してみましょう!

Rで学ぶ caret を使った Machine Learning

Preparing Video For Download...