Abundando en mi respuesta anterior, ni siquiera la validación cruzada es una medida perfecta del comportamiento del modelo a posteriori porque, aunque lo has construido con validación cruzada, y has escogido el que mejor se comporta con datos que "no ve", no sabes (quizá en tu caso sí, pero no tiene por qué ser así) cómo van a evolucionar los datos en la vida real, siendo muy posible, que tengas que ir renovando el modelo.
Un saludo. Isidro Hidalgo Arellano Observatorio del Mercado de Trabajo Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/ -----Mensaje original----- De: Isidro Hidalgo Arellano [mailto:[email protected]] Enviado el: viernes, 02 de junio de 2017 12:00 Para: 'Jesús Para Fernández' <[email protected]>; '[email protected]' <[email protected]> Asunto: RE: [R-es] CV en R No, no. Si construyes el modelo con todos los datos, explícame para qué te ha servido la validación cruzada... ¿Sólo para saber si funciona mejor SVM o RF con ese conjunto de datos? Eso es insuficiente. Cuando construyes un modelo, lo haces entrenando con datos que el modelo NO VE, ahí está la gracia... Te tienes que quedar con el mejor modelo entrenado. Y después ver cómo te funciona en la vida real, es decir, con nuevos datos que el modelo NO HA VISTO. Un saludo. Isidro Hidalgo Arellano Observatorio del Mercado de Trabajo Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/ -----Mensaje original----- De: R-help-es [mailto:[email protected]] En nombre de Jesús Para Fernández Enviado el: viernes, 02 de junio de 2017 11:48 Para: [email protected] Asunto: [R-es] CV en R Buenas, Estoy haciendo modelos y comparando cual es mejor. Para ello, uso CV de 10 folds. Por ejemplo, hago la comparativa entre un svm y un randomForest para una serie de datos, por ello hago: midataset<-import..... #datos es un dataframe de 1500 filas y 15 variables for(i in 1:10){ numeros<-sample(1:1500,1500*0.7) train<-datos[numeros,] test<-datos[-numeros,] #modeloRF modelo.rf<-randomForest(respuesta~,train) prediccion<-predict(modelo.rf,test) fp<-table(prediccion,test$respuesta)[2,1] fn<-table(prediccion,test$respuesta)[1,2] error<-(fp+fn)/nrow(train.balanceado) resultado<-rbind(resultado,data.frame(error=error,modelo="rf")) #modelo SVM modelo.svm<-svm(respuesta~,train) prediccion<-predict(modelo.svm,test) fp<-table(prediccion,test$respuesta)[2,1] fn<-table(prediccion,test$respuesta)[1,2] error<-(fp+fn)/nrow(train.balanceado) resultado<-rbind(resultado,data.frame(error=error,modelo="svm")) } Mi pregunta es la siguiente. Si el modelo de RF es mejor, como me quedo con el modelo final? Tengo que crear el modelo de nuevo, sin tener en cuenta el train? modelo.final<-randomForest(respuesta~.,datos) Gracias!!!! [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
