Estoy tratando de usar el módulo R caret para la generación de modelos y quiero usar alguna función de validación cruzada. Descubrí que la única función de validación cruzada que funciona junto con rpart
es LOOCV
(deje una validación cruzada).caret: Error al usar cualquier cosa que no sea LOOCV con rpart
El siguiente código tiros el error:
library(cart)
data(trees)
formula=Volume~Girth+Height
train(formula, data=trees, method='rpart')
Warning message: In nominalTrainWorkflow(dat = trainData, info = trainInfo, method = method, : There were missing values in resampled performance measures.
¿Qué significa este error y cómo puedo hacer que se vaya? Busqué en Internet, ni un solo golpe para este mensaje de error. Seguí el error hasta la generación del modelo rpart
. ¡De alguna manera genera este mensaje de error, todos los demás métodos de generación de modos funcionan bien!
Todo funciona bien si uso LOOCV
.
Rastreé la advertencia hasta el archivo workflows.R, pero no entiendo por qué se lanza esta advertencia.
> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] earth_3.2-3 plotrix_3.4 plotmo_1.3-1
[4] leaps_2.9 doMC_1.2.5 multicore_0.1-7
[7] iterators_1.0.6 forecast_3.20 RcppArmadillo_0.3.0.2
[10] Rcpp_0.9.10 fracdiff_1.4-1 tseries_0.10-28
[13] zoo_1.7-7 quadprog_1.5-4 caret_5.15-023
[16] foreach_1.4.0 cluster_1.14.2 reshape_0.8.4
[19] plyr_1.7.1 lattice_0.20-6 mda_0.4-2
[22] class_7.3-3 rpart_3.1-52 data.table_1.8.0
loaded via a namespace (and not attached):
[1] codetools_0.2-8 compiler_2.15.0 grid_2.15.0
Gracias theomega por compartir la respuesta con SO. Me encuentro con el mismo problema ahora al ajustar nnet, knn y svmRadial. ¿A qué te refieres con R^2 en este contexto? (¿y cómo editaste el tuyo?). ¿Hiciste algún progreso en las dos preguntas que planteas arriba? –
Bien, caret calcula varias métricas, incluyendo MAPE y R^2 para los modelos. El cálculo R^2 arroja un error si su modelo es constante (predice el mismo valor para todas las variables independientes). La función R^2 utilizada por caret no se puede usar para modelos constantes. Hay otras definiciones R^2 que funcionan. Usé uno de ellos. Debe tener en cuenta que no hay una definición (!) R^2 sino varias que dan lugar a valores y restricciones diferentes. – theomega