Max Khun の Applied Predictive Modeling の本に従って、キャレットがどのように機能するかを学ぼうとしていますが、キャレットの混乱マトリックス関数がどのように機能するかを理解できませんでした。
次のように glmnet を使用して、8190 行と 1073 列のトレーニング データ セット (training[, fullSet]) をトレーニングしました。
glmnGrid <- expand.grid(alpha = c(0, .1, .2, .4, .6, .8, 1),
lambda = seq(.01, .2, length = 40))
ctrl <- trainControl(method = "cv",
number = 10,
summaryFunction = twoClassSummary,
classProbs = TRUE,
index = list(TrainSet = pre2008),
savePredictions = TRUE)
glmnFit <- train(x = training[,fullSet],
y = training$Class,
method = "glmnet",
tuneGrid = glmnGrid,
preProc = c("center", "scale"),
metric = "ROC",
trControl = ctrl)
次に、適合から混同行列を出力しました。
glmnetCM <- confusionMatrix(glmnFit, norm = "none")
混同行列を見たところ、次の結果が得られました。
Reference
Prediction successful unsuccessful
successful 507 208
unsuccessful 63 779
しかし、混同テーブルに 1757 個の観測値 (1757 = 507 + 208 + 63 + 779) しかない理由がわかりません。これは、キャレットの混乱マトリックス.トレインのドキュメントに、「トレインをモデルの調整に使用すると、混同マトリックス セルを追跡する」と記載されているためです。ホールドアウトサンプルのエントリー。」トレーニング データ セットには 8190 行があり、10 倍の CV を使用したため、混同行列は 819 データ ポイント (819 = 8190 / 10) に基づく必要があると考えましたが、そうではありません。
明らかに、キャレットのtrainControlまたはtrainがどのように機能するかを完全には理解していません。誰かが私が誤解したことを説明できますか?
どうもありがとうございました。
イ・ヨンジン