2012-06-29 20 views
9

Desidero utilizzare le previsioni non raggruppate di un modello di accento circonflesso per addestrare un modello di secondo stadio che includa alcuni dei predittori originali. Sono in grado di raccogliere le previsioni out-of-fold come segue:Raccolta di pronostici semplici da un modello di accento circonflesso

#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,] 

Che è grande, ma sono in ordine errato:

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

so l'oggetto train restituisce un elenco di quali indici sono stati utilizzati per addestrare ogni piega:

> 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 ... 

come posso utilizzare queste informazioni per mettere le osservazioni nel mio out_of_fold oggetto nello stesso ordine dell'originale 0.123.448,297 mila Set di dati?

risposta

6

Aggiungerò un'altra colonna all'output che indica il numero di riga originale per ogni campione nella prossima versione (probabilmente un mese da oggi).

Max

+0

Impressionante, grazie mille! – Zach

Problemi correlati