2017-09-09 16 views
0

私はキャレットライブラリを初めて使用しています。列関数を使用して、データセットに対してクロスバリデーションを実行したい(rpartメソッドを使用して分類する)。私の目標は、トレーニングの呼び出しから返されたデータを使用して学習曲線を作成することです。学習曲線は、データセットのサイズをx軸にプロットします。トレーニングセットとクロスバリデーションセットに関する予測の誤差は、データセットサイズの関数としてプロットされます。caret :: trainの出力から学習曲線(バイアス/分散)を作成する方法

私の質問は、キャレットはトレーニングとcvフォールドの両方について予測していますか?答えが「はい」の場合、データを抽出するにはどうすればよいでしょうか?答えを想定し

は、ここでは、イエスであるあなたが説明するために追加することができ、簡単なコードサンプルです:

library(MASS) 
data(biopsy) 
biopsy <- biopsy[, -1] 
names(biopsy) <- c("thick", "u.size", "u.shape", "adhsn", "s.size", "nucl", "chrom", "n.nuc", "mit", "class") 
biopsy.v2 <- na.omit(biopsy) 
set.seed(1) 
ind <- sample(2, nrow(biopsy.v2), replace = TRUE, prob = c(0.7, + 0.3)) 
biop.train <- biopsy.v2[ind == 1, ] 
tr.model <- caret::train(class ~ ., data= biop.train, trControl = trainControl(method="cv", number=4, verboseIter = FALSE, savePredictions = "final"), method='rpart') 
#Can I extract train and cv accuracies from tr.model? 

感謝。

注:私のデータセットのさまざまなサンプルを列車に繰り返し呼び出す必要があるかもしれないことを認識しています(キャレットはこれもサポートしていないと仮定します)、ここのコードサンプルには反映されません。

答えて

0

あなたはこれを試すことができます。各リサンプルのための予測と

データフレーム:各パフォーマンス・メトリックの列を持つ

tr.model$pred 

データフレームを。各行は各リサンプルに相当する:

tr.model$resample 

最終パラメータを有するデータフレーム:

tr.model$bestTune 

チューニングパラメータのトレーニングエラーレートおよび値を有するデータフレーム:

tr.model$results 

繰り返しCVを指定するには:

trainControl(..., repeats = n) 
nは整数(計算する襞の完全なセットの数)

EDITある

:決定試験であったリサンプリングはフォールド:

関連情報がtr.model $ PREDデータフレームです。テスト折り目ではありませんでした

tr.model$pred[tr.model$pred$Resample=="Fold1",4:5] 
tr.model$pred[tr.model$pred$Resample=="Fold2",4:5] 
tr.model$pred[tr.model$pred$Resample=="Fold3",4:5] 
tr.model$pred[tr.model$pred$Resample=="Fold4",4:5] 

ものはトレーニングしていたこの@missuseのフィードバックのための

+0

感謝を折ります。フォローアップとして、トレーニング折りたたみとクロスバリデーション折りたたみのどちらのリサンプルがどのように決定されたかを知ることができますか? –

+0

喜んで助けてください。 EDITをチェックします。 – missuse

+0

OKだから、tr.model $ pred $ Resampleにはテスト折りたたみ結果が含まれています(そのことを確認してくれてありがとう)。トレーニング結果はどこで確認できますか? –

関連する問題