始める無料で始める

カスタム trainControl で glmnet を適合させる

カスタムの trainControl オブジェクトが用意できたので、"don't overfit" データセットに glmnet モデルを適合させましょう。動画でも触れたとおり、glmnet は一般化線形回帰モデル(glm)を拡張し、係数の大きさに制約を加えることで過学習を防ぎます。これは一般に「ペナルティ付き」回帰と呼ばれ、多数の説明変数に対してサンプル数が少ないデータセットでとても有効な手法です。

glmnet では、alpha パラメータで制御される2種類のペナルティ付きモデルを学習できます。

  • リッジ回帰(alpha = 0
  • ラッソ回帰(alpha = 1

ここでは、caret パッケージが提供するデフォルト設定を使って、"don't overfit" データセットに glmnet モデルを適合させます。

この演習はコースの一部です

Rで学ぶ caret を使った Machine Learning

コースを見る

演習の手順

  • overfit データに対して glmnet モデルを学習し、model という名前で保存します。前の演習で作成したカスタムの trainControlmyControl)を使ってください。目的変数は y、それ以外はすべて説明変数です。
  • モデルをコンソールに出力してください。
  • model[["results"]] のどこかに含まれる ROC 統計量の最大値を、max() 関数で求めてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Fit glmnet model: model
model <- train(
  ___, 
  ___,
  method = "glmnet",
  trControl = ___
)

# Print model to console


# Print maximum ROC statistic
コードを編集して実行