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]]
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:r-help-es-bounces en r-project.org] En nombre de Jesús
Para Fernández
Enviado el: viernes, 02 de junio de 2017 11: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
Es que es justo ahi donde no se como hacerlo.
Es decir, dentro del bucle for hago las comprobaciones train test, y me da que
de media el mejor es randomForest, pero claro, no me estoy quedando con el
modelo, ya que no se va guardando....Entonces es cuando no se como seguir para
quedarme con ese modelo....
________________________________
De: Isidro Hidalgo Arellano <ihidalgo en jccm.es>
Enviado: viernes, 2 de junio de 2017 11:59
Para: 'Jesús Para Fernández'; r-help-es en r-project.org
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/
Inicio | Gobierno de Castilla-La Mancha<http://www.castillalamancha.es/>
www.castillalamancha.es
Web oficial del gobierno autonómico de Castilla-La Mancha con información sobre
actividad administrativa, economía, educación, sanidad, servicios sociales, sede
...
-----Mensaje original-----
De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de Jesús
Para Fernández
Enviado el: viernes, 02 de junio de 2017 11: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]]
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:ihidalgo en jccm.es] 
Enviado el: viernes, 02 de junio de 2017 12:00
Para: 'Jesús Para Fernández' <j.para.fernandez en hotmail.com>;
'r-help-es en r-project.org' <r-help-es en r-project.org>
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:r-help-es-bounces en r-project.org] En nombre de Jesús
Para Fernández Enviado el: viernes, 02 de junio de 2017 11: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
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]]
Gracias por las respuestas, pero suponed lo siguiente:
El proceso que genera los datos es estable en el tiempo (siempre genera los
mismos) y la respuesta está perfectamente balanceada. Parto de nu conjunto de
datos inicial, y un conjunto de datos test del que no se la respuesta.
El conjunto inicial lo parto en train y test como puse antes para ir evaluando
los modelos, pero luego me tengo que quedar con un modelo "definitivo"
y ese modelo aplicarlo al test inicial que os comento.
Mi pregunta es: ¿Cómo hago para quedarme con ese modelo definitivo?
Os recuerdo mi codigo:
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"))
}
modelo.definitivo<-randomForest(respuesta~.,datos)
________________________________
De: Isidro Hidalgo Arellano <ihidalgo en jccm.es>
Enviado: viernes, 2 de junio de 2017 12:05
Para: 'Jesús Para Fernández'; r-help-es en r-project.org
Asunto: RE: [R-es] CV en R
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/
Inicio | Gobierno de Castilla-La Mancha<http://www.castillalamancha.es/>
www.castillalamancha.es
Web oficial del gobierno autonómico de Castilla-La Mancha con información sobre
actividad administrativa, economía, educación, sanidad, servicios sociales, sede
...
-----Mensaje original-----
De: Isidro Hidalgo Arellano [mailto:ihidalgo en jccm.es]
Enviado el: viernes, 02 de junio de 2017 12:00
Para: 'Jesús Para Fernández' <j.para.fernandez en hotmail.com>;
'r-help-es en r-project.org' <r-help-es en r-project.org>
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:r-help-es-bounces en r-project.org] En nombre de Jesús
Para Fernández Enviado el: viernes, 02 de junio de 2017 11: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]]