Как указать задержку проверки, установленную для каретки

Мне действительно нравится использовать каретку, по крайней мере, на ранних этапах моделирования, особенно для этого »Это очень легко использовать методы передискретизации. Однако я'Я работаю над моделью, в которой учебный набор содержит достаточное количество случаев, добавленных с помощью самообучения под наблюдением, и из-за этого мои результаты перекрестной проверки действительно искажены. Мое решение этого заключается в использовании набора проверки для измерения производительности модели, но я могуНе вижу способа использовать набор проверки непосредственно внутри каретки - я что-то упустил или это просто не поддерживается? Я знаю, что могу написать свои собственные обертки, чтобы делать то, что обычно делает каретка для m, но было бы очень хорошо, если бы был обходной путь без необходимости делать это.

Вот тривиальный пример того, что я испытываю:

> library(caret)
> set.seed(1)
> 
> #training/validation sets
> i  train  valid  
> #make my model
> tc  model.rf  
> #model parameters are selected using CV results...
> model.rf
100 samples
  4 predictors
  3 classes: 'setosa', 'versicolor', 'virginica' 

No pre-processing
Resampling: Cross-Validation (10 fold) 

Summary of sample sizes: 90, 90, 90, 89, 90, 92, ... 

Resampling results across tuning parameters:

  mtry  Accuracy  Kappa  Accuracy SD  Kappa SD
  2     0.971     0.956  0.0469       0.0717  
  3     0.971     0.956  0.0469       0.0717  
  4     0.971     0.956  0.0469       0.0717  

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was mtry = 2. 
> 
> #have to manually check validation set
> valid.pred  table(valid.pred,valid$Species)

valid.pred   setosa versicolor virginica
  setosa         17          0         0
  versicolor      0         20         1
  virginica       0          2        10
> mean(valid.pred==valid$Species)
[1] 0.94

Я изначально думал, что смогу сделать это, создавsummaryFunction() дляtrainControl() объект, но я не вижу, как ссылаться на мой объект модели, чтобы получить прогнозы из набора проверки (документация -http://caret.r-forge.r-project.org/training.html - только спискиданные", "лев» а также "модель» как возможные параметры). Например, это явно не будет работать:

tc$summaryFunction  tc$summaryFunction  train(Species ~ ., data=train,method="rf",trControl=tc)
note: only 1 unique complexity parameters in default grid. Truncating the grid to 1 .

Called from: trControl$summaryFunction(testOutput, classLevels, method)
Browse[1]> lapply(sys.frames(),function(x) ls(envi=x))
[[1]]
[1] "x"

[[2]]
 [1] "cons"      "contrasts" "data"      "form"      "m"         "na.action" "subset"   
 [8] "Terms"     "w"         "weights"   "x"         "xint"      "y"        

[[3]]
[1] "x"

[[4]]
 [1] "classLevels" "funcCall"    "maximize"    "method"      "metric"      "modelInfo"  
 [7] "modelType"   "paramCols"   "ppMethods"   "preProcess"  "startTime"   "testOutput" 
[13] "trainData"   "trainInfo"   "trControl"   "tuneGrid"    "tuneLength"  "weights"    
[19] "x"           "y"          

[[5]]
[1] "data"  "lev"   "model"

Ответы на вопрос(2)

Ваш ответ на вопрос