[R-es] CV en R

Javier Marcuzzi javier.ruben.marcuzzi en gmail.com
Vie Jun 2 12:05:21 CEST 2017


Estimado Jesús Para Fernández

Usted tiene unos datos que utilizó para entrenar, luego corrió dos modelos, y piensa que puede realizar otro modelo sin entrenamiento.

Yo pienso que puede mejorar el modelo y realizar un entrenamiento a este nuevo modelo aunque sean los mismos datos, desconozco si puede resolver sin un entrenamiento previo, salvo que el algoritmo en caso de no especificarlo tome por defecto algunos datos de la muestra en forma predeterminada. En ese caso habría que leer la documentación (no lo se).

Aunque usted usa casi lo mismo
train<-datos[numeros,]
test<-datos[-numeros,]

¿Qué pasa si el entrenamiento tiene por colocar cualquier número el 20% de la muestra? En un libro sobre aprendizaje estadístico decía que si el entrenamiento es muy bueno (como en su caso con los mismos datos y en cantidad), el modelo ajusta muy bien, pero al ingresar un solo dato los errores son “grandes”, porque el modelo no esta preparado para ninguna otra situación, en cambio si se entrena con algunos, digamos como en su caso pero en lugar del 100 % de los datos el 99%, el modelo estaría “preparado” para recibir un dato nuevo. Técnicamente no es todo correcto como lo escribí pero es la idea.

Javier Rubén Marcuzzi

De: Jesús Para Fernández
Enviado: viernes, 2 de junio de 2017 6:48
Para: r-help-es en r-project.org
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
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es