カスタム 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という名前で保存します。前の演習で作成したカスタムのtrainControl(myControl)を使ってください。目的変数はy、それ以外はすべて説明変数です。- モデルをコンソールに出力してください。
model[["results"]]のどこかに含まれる ROC 統計量の最大値を、max()関数で求めてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Fit glmnet model: model
model <- train(
___,
___,
method = "glmnet",
trControl = ___
)
# Print model to console
# Print maximum ROC statistic