2012-06-29 9 views
9

Deseo utilizar las predicciones de contracciones de un modelo de intercalación para entrenar un modelo de segunda etapa que incluya algunos de los predictores originales. Me puede obtener las predicciones de fuera del pliegue de la siguiente manera:Recopilación de predicciones de contratiempos de un modelo de intercalación

#Load Data 
set.seed(1) 
library(caret) 
library(mlbench) 
data(BostonHousing) 

#Build Model (see ?train) 
rpartFit <- train(medv ~ . + rm:lstat, data = BostonHousing, method="rpart", 
       trControl=trainControl(method='cv', number=folds, 
             savePredictions=TRUE)) 

#Collect out-of-fold predictions 
out_of_fold <- rpartFit$pred 
bestCP <- rpartFit$bestTune[,'.cp'] 
out_of_fold <- out_of_fold[out_of_fold$.cp==bestCP,] 

que es grande, pero ellos están en el orden equivocado:

> all.equal(out_of_fold$obs, BostonHousing$medv) 
[1] "Mean relative difference: 0.4521906" 

sé el objeto train devuelve una lista de qué índices fueron utilizados para entrenar cada pliegue:

> str(rpartFit$control$index) 
List of 10 
$ Fold01: int [1:457] 1 2 3 4 5 6 7 8 9 10 ... 
$ Fold02: int [1:454] 2 3 4 8 10 11 12 13 14 15 ... 
$ Fold03: int [1:457] 1 2 3 4 5 6 7 8 9 10 ... 
$ Fold04: int [1:455] 1 2 3 5 6 7 8 9 10 11 ... 
$ Fold05: int [1:455] 1 2 3 4 5 6 7 8 9 10 ... 
$ Fold06: int [1:455] 1 2 3 4 5 6 7 8 9 10 ... 
$ Fold07: int [1:457] 1 3 4 5 6 7 8 9 10 13 ... 
$ Fold08: int [1:455] 1 2 4 5 6 7 9 11 12 14 ... 
$ Fold09: int [1:455] 1 2 3 4 5 6 7 8 9 10 ... 
$ Fold10: int [1:454] 1 2 3 4 5 6 7 8 9 10 ... 

¿Cómo puedo utilizar esta información para poner las observaciones en mi objeto out_of_fold en el mismo orden que el original BostonHousing conjunto de datos?

Respuesta

6

Añadiré otra columna a la salida que indica el número de fila original para cada muestra en la próxima versión (probablemente dentro de un mes).

Max

+0

Impresionante, muchas gracias! – Zach

Cuestiones relacionadas