始める無料で始める

サンプル外でのモデル適合度を評価する

インサンプルの適合度よりも、サンプル外での適合度を見るほうが妥当であることがわかりました。そこでこの演習では、サンプル外の正解率を算出します。

その前に、いくつか準備が必要です。defaultDataを再度使いましょう。logitModelNewはすでに環境に読み込まれています。

完全な分析では、サンプル外データを用いて(特に)複数のモデル候補を常に比較する必要がある点に注意してください。

最適なしきい値0.3を用いたインサンプルの正解率は0.7922901です。 過学習が起きていないか、しっかり確認しましょう。

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

Rで学ぶマーケティングアナリティクスのための機械学習

コースを見る

演習の手順

  • まず、データセットをランダムに訓練用とテスト用に分割します。訓練用は全データの2/3にしてください。

  • 次に、モデルを素早く実行し、logitTrainNewという名前を付けます。与えられた式を使ってください。

  • テストデータで予測を行い、混同行列を用いてサンプル外の正解率を計算します。なお、SDMToolsはCRANからはもうダウンロードできません。ご自身のPCでは代わりにremotes::install_version("SDMTools", "1.1-221.2")でインストールしてください。

  • 上で与えられたインサンプルの値と、サンプル外の正解率を比較しましょう。

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

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

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
コードを編集して実行