2017-10-22 9 views
2

キャレットパッケージの5倍交差検証アルゴリズムを理解しようとしましたが、折りたたみごとにトレインセットとテストセットを取得する方法がわかりませんでした。同様の示唆された質問からこれを見つけてください。私はランダムフォレスト法による相互検証を行いたい場合を想像し、私は次のようにします。キャレットクロスバリデーションの各折りたたみのテストセットとトレインセット

set.seed(12) 
train_control <- trainControl(method="cv", number=5,savePredictions = TRUE) 
rfmodel <- train(Species~., data=iris, trControl=train_control, method="rf") 
first_holdout <- subset(rfmodel$pred, Resample == "Fold1") 
str(first_holdout) 
'data.frame': 90 obs. of 5 variables: 
$ pred : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1  
$ obs  : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 
$ rowIndex: int 2 3 9 11 25 29 35 36 41 50 ... 
$ mtry : num 2 2 2 2 2 2 2 2 2 2 ... 
$ Resample: chr "Fold1" "Fold1" "Fold1" "Fold1" ... 

は、トレーニングセットとして使用Fold1でこれらの90個の観測はありますか?はいの場合、この折り目のテストセットはどこですか?

+0

手動でそれを行うための必要はありません。 'str(rfModel)'をチェックする 'index'と' indexOut'の中にそれを見つけることができます。 –

答えて

0
str(rfmodel) 

モデルはすべて以下の形式で保存されました。 controlは、indexindexOutにトレインとそれぞれのホールドアウトに行ったサンプルのインデックスを格納します。電車のインデックスへ

names(rfmodel) 
# [1] "method"  "modelInfo" "modelType" "results"  "pred"   
# [6] "bestTune"  "call"   "dots"   "metric"  "control"  
# [11] "finalModel" "preProcess" "trainingData" "resample"  "resampledCM" 
# [16] "perfNames" "maximize"  "yLimits"  "times"  "levels"  
# [21] "terms"  "coefnames" "xlevels" 

パスとホールドアウトサンプル

# Indexes of Hold Out Sets 
rfmodel$control$indexOut 

# Indexes of Train Sets for above hold outs 
rfmodel$control$index 
+0

あなたの答えに感謝します。したがって、rfmodel $ resampleの精度のリストは、ホールドアウトサンプルで行われた各折り目の予測精度です。 –

+0

はい。それは本当です。それらは予想を保留した結果です。 –

+0

どのように、どのように格納したのか、作成されたモデルや実行された予測からどのように情報にアクセスできるかを見るために、実行するモデルで 'str()'と 'names()'を実行してください。したがって、これらの機能を利用して学習を支援してください。 –

関連する問題