[R-es] CV en R

Carlos Ortega cof en qualityexcellence.es
Dom Jun 4 12:11:21 CEST 2017


H2O va bien (muy bien) tanto en un ordenador sobremesa/portátil y sobre un
clúster. En uno de sobremesa si tienes buena RAM y muchos cores, mejor. Y
no tienes porqué usar Spark si no necesitas una solución tiempo real o
"near real-time". H2O tiene otra solución para interaccionar con Spark
(Sparkling Water).

Incluso sobre un clúster, puedes usar "sparklyr" y "rsparklyng" tanto para
interaccionar con Spark sin salir de "R" (usando dplyr) y para
interaccionar con H2O, igualmente sin salir de "R". Mira las páginas de
RStudio que tratan estas dos soluciones o la presentación que hizo en el
Grupo de Usuarios de R de Madrid de José Luis Cañadas que contó las dos
alternativas.



El 4 de junio de 2017, 12:04, Jesús Para Fernández <
j.para.fernandez en hotmail.com> escribió:

> H20 con grandes bases de datos y R funciona bien? O es necesario tirar de
> spark y demás???
>
> ------------------------------
> *De:* Carlos Ortega <cof en qualityexcellence.es>
> *Enviado:* domingo, 4 de junio de 2017 12:02
> *Para:* Jesús Para Fernández
> *Cc:* Isidro Hidalgo Arellano; Manuel Spínola; Lista R
> *Asunto:* Re: [R-es] CV en R
>
> Si nos dices el tipo de problema que estás intentando solucionar y el
> tamaño del dataset podemos recomendarte algo más.
> En tu pseudo-código mezclas algoritmos supervisados y no-supervisados.
> Además de ranger, daría alguna oportunidad a "gbm" o como no a "xgboost".
> Y éstos los probaría dentro de H2O.
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
> QualityExcellence <http://www.qualityexcellence.es/>
> www.qualityexcellence.es
> QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua
>
>
>
> El 4 de junio de 2017, 9:50, Jesús Para Fernández <
> j.para.fernandez en hotmail.com> escribió:
>
>> El paquete ranger la verdad es que es la bomba. Acabo de probarlo y va
>> muy muy bien. Mucho más rápido que randomForest!!!!
>>
>> Gracias Carlos. Algún "secretillo" más??
>>
>>
>> ------------------------------
>> *De:* Carlos Ortega <cof en qualityexcellence.es>
>> *Enviado:* sábado, 3 de junio de 2017 21:52
>> *Para:* Jesús Para Fernández
>> *Cc:* Isidro Hidalgo Arellano; Manuel Spínola; Lista R
>> *Asunto:* Re: [R-es] CV en R
>>
>> Hola,
>>
>> Puedes ver aquí un ejemplo de cómo comparar varios modelos usando "caret".
>>
>> https://stackoverflow.com/questions/14800021/statistics-of-
>> prediction-for-multiple-models-with-caret
>>
>> <https://stackoverflow.com/questions/14800021/statistics-of-prediction-for-multiple-models-with-caret>
>> Statistics of prediction for multiple models with caret
>> <https://stackoverflow.com/questions/14800021/statistics-of-prediction-for-multiple-models-with-caret>
>> stackoverflow.com
>> I am trying to get statistics of prediction for various training models
>> with the package caret. Below is an example that illustrates my need:
>> library(caret) # Training: # ... Get X and Y for trai...
>>
>>
>> O mejor en el propio manual de "caret", en esta sección:
>>
>> https://topepo.github.io/caret/model-training-and-tuning.
>> html#exploring-and-comparing-resampling-distributions
>> The caret Package - GitHub Pages
>> <https://topepo.github.io/caret/model-training-and-tuning.html#exploring-and-comparing-resampling-distributions>
>> topepo.github.io
>> 5.1 Model Training and Parameter Tuning. The caret package has several
>> functions that attempt to streamline the model building and evaluation
>> process.
>>
>>
>>
>> Y como recomendación te sugiero que usen "ranger" en vez de
>> "randomForest", no solo por velocidad, si no también por las mejoras y
>> ampliaciones de funcionalidad que incorpora.
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>>
>> El 2 de junio de 2017, 19:58, Jesús Para Fernández <
>> j.para.fernandez en hotmail.com> escribió:
>>
>>> Para el tema de los árboles necesarios se ve muy bien haciendo
>>> plot(modelo) y se ve en que punto se han estabilizado o si necesitas más
>>> árboles.
>>> ------------------------------
>>> *De:* Isidro Hidalgo Arellano <ihidalgo en jccm.es>
>>> *Enviado:* viernes, 2 de junio de 2017 15:01:37
>>> *Para:* 'Jesús Para Fernández'; 'Manuel Spínola'
>>> *Cc:* 'Carlos Ortega'; 'Lista R'
>>>
>>> *Asunto:* RE: [R-es] CV en R
>>>
>>>
>>> No, llega un momento en el que más árboles no te supone mejoría, e
>>> incluso funciona peor. Que funcione peor lo atribuyo al ruido, porque en
>>> teoría no tiene mucho sentido, la verdad... Pero no he probado a coger más
>>> árboles de los "necesarios". Lo probaré…
>>>
>>> Un saludo
>>>
>>>
>>>
>>> *De:* Jesús Para Fernández [mailto:j.para.fernandez en hotmail.com]
>>> *Enviado el:* viernes, 02 de junio de 2017 14:54
>>> *Para:* Isidro Hidalgo Arellano <ihidalgo en jccm.es>; 'Manuel Spínola' <
>>> mspinola10 en gmail.com>
>>> *CC:* 'Carlos Ortega' <cof en qualityexcellence.es>; 'Lista R' <
>>> r-help-es en r-project.org>
>>> *Asunto:* Re: [R-es] CV en R
>>>
>>>
>>>
>>> Si, de eso soy consciente. Normalmente cuantos más arboles cojas es
>>> mejor no? el problema es que se incrementa el tiempo de computación...
>>>
>>>
>>> ------------------------------
>>>
>>> *De:* Isidro Hidalgo Arellano <ihidalgo en jccm.es>
>>> *Enviado:* viernes, 2 de junio de 2017 14:50
>>> *Para:* 'Manuel Spínola'
>>> *Cc:* 'Jesús Para Fernández'; 'Carlos Ortega'; 'Lista R'
>>> *Asunto:* RE: [R-es] CV en R
>>>
>>>
>>>
>>> El algoritmo en sí no, pero si quieres ajustar los parámetros (número de
>>> árboles, tamaño del nodo, etc.) hay que hacerlo.
>>>
>>> En la práctica te puedo asegurar que hay diferencia entre usar 500
>>> árboles o 100, igual que el tamaño del nodo que cojas; afinar los
>>> parámetros puede suponer ajustar bastante los resultados.
>>>
>>> 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 ...
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *De:* Manuel Spínola [mailto:mspinola10 en gmail.com <mspinola10 en gmail.com>]
>>>
>>> *Enviado el:* viernes, 02 de junio de 2017 14:42
>>> *Para:* Isidro Hidalgo Arellano <ihidalgo en jccm.es>
>>> *CC:* Jesús Para Fernández <j.para.fernandez en hotmail.com>; Carlos
>>> Ortega <cof en qualityexcellence.es>; Lista R <r-help-es en r-project.org>
>>> *Asunto:* Re: [R-es] CV en R
>>>
>>>
>>>
>>> Hola,
>>>
>>>
>>>
>>> No soy un experto en estas técnicas, pero hasta donde yo se, el
>>> algoritmo Random Forest no requiere cross validation.
>>>
>>>
>>>
>>> Lo dice el mismo Leo Breiman que creo ha sido uno de los investigadores
>>> que más ha contribuido al desarrollo de Random Forest (
>>> https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)
>>>
>>> Random forests - classification description
>>> <https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm>
>>>
>>> www.stat.berkeley.edu
>>>
>>> Contents. Introduction Overview Features of random forests Remarks How
>>> Random Forests work The oob error estimate Variable importance Gini
>>> importance
>>>
>>>
>>>
>>>
>>>
>>> Manuel
>>>
>>>
>>>
>>> El 2 de junio de 2017, 6:35, Isidro Hidalgo Arellano <ihidalgo en jccm.es>
>>> escribió:
>>>
>>> Una vez que tienes la técnica y los parámetros óptimos resultantes de la
>>> validación cruzada, ya tienes el modelo que necesitas, NO tienes que
>>> hacer
>>> nada más. Si vuelves a modelar con todos los datos todo el trabajo de
>>> validación que has hecho lo envías a hacer gárgaras. Estarías
>>> construyendo
>>> un modelo con sobreajuste.
>>>
>>>
>>>
>>> Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
>>> validación y ve aplicándolo a los nuevos datos. Haz lo mismo con el que
>>> obtengas de ése paso final que NO debes dar, y que no te he puesto en mi
>>> código corregido, a saber:
>>>
>>> modelo.final<-randomForest(respuesta~.,datos)
>>>
>>>
>>>
>>> Cuando los aplicas con los nuevos datos, ¿cuál funciona mejor?
>>>
>>>
>>>
>>> Un saludo
>>>
>>>
>>>
>>>
>>>
>>> Isidro Hidalgo Arellano
>>>
>>> Observatorio del Mercado de Trabajo
>>>
>>> Consejería de Economía, Empresas y Empleo
>>>
>>> http://www.castillalamancha.es/
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> De: Jesús Para Fernández [mailto:j.para.fernandez en hotmail.com]
>>> Enviado el: viernes, 02 de junio de 2017 14:21
>>> Para: Carlos Ortega <cof en qualityexcellence.es>
>>> CC: Lista R <r-help-es en r-project.org>; Isidro Hidalgo Arellano
>>> <ihidalgo en jccm.es>
>>> Asunto: Re: [R-es] CV en R
>>>
>>>
>>>
>>> Pero creo que hay un concepto que no termina de aclararse.
>>>
>>>
>>>
>>> Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
>>> imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
>>> LDA....
>>>
>>>
>>>
>>> Entonces hacemos lo siguiente:
>>>
>>>
>>>
>>> Probamos con todos ellos, para lo que se hacen particiones:
>>>
>>>
>>>
>>> Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
>>> sin datos faltantes, ni ruido ni nada asi. Entonces:
>>>
>>>
>>>
>>> for(i in 1:10){
>>>
>>> train #saco el train de los datos
>>>
>>> test #saco el test de los datos
>>>
>>> pruebo RF, con diferentes configuaraciones (bucles j,k)
>>>
>>> pruebo SVM, con diferentes configuaraciones (bucles j,k)
>>>
>>> pruebo KNN
>>>
>>> pruebo LDA
>>>
>>>
>>>
>>> guardo resultados
>>>
>>>
>>>
>>> }
>>>
>>>
>>>
>>> y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
>>> conjunto de datos global. Si fuera un randomForest
>>>
>>>
>>>
>>> randomForest(respuesta~.,ntree=500,nodesize=4,datos)
>>>
>>>
>>>
>>> Y ese es mi modelo para los proximos daots que vengan yq ue no han
>>> formado
>>> parte del datasheet datos
>>>
>>>
>>>
>>>   _____
>>>
>>> De: Carlos Ortega < <mailto:cof en qualityexcellence.es>
>>> cof en qualityexcellence.es>
>>> Enviado: viernes, 2 de junio de 2017 13:11
>>> Para: Jesús Para Fernández
>>> Cc: Lista R; Isidro Hidalgo Arellano
>>> Asunto: Re: [R-es] CV en R
>>>
>>>
>>>
>>> Hola,
>>>
>>>
>>>
>>> Eso es justamente lo que hace "caret" de una manera muy sencilla y sin
>>> que
>>> tú te tengas que preocupar de quedarte con el mejor bucket  (del CV) o
>>> con
>>> la mejor combinación en tu "grid search".
>>>
>>>
>>>
>>> Te recomiendo que uses "caret" para esto....
>>>
>>> Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
>>> realmente el nivel de precisión que ofrecen ambos.
>>>
>>> Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
>>> que haces el CV dejando el resto "test" para validar el nivel de
>>> predicción.
>>>
>>>
>>>
>>> Gracias,
>>>
>>> Carlos Ortega
>>>
>>>  <http://www.qualityexcellence.es> www.qualityexcellence.es
>>>
>>>
>>>  <http://www.qualityexcellence.es/> QualityExcellence
>>>
>>>  <http://www.qualityexcellence.es> www.qualityexcellence.es
>>>
>>> QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua
>>>
>>>
>>>
>>>
>>>
>>> El 2 de junio de 2017, 13:06, Isidro Hidalgo Arellano <
>>> <mailto:ihidalgo en jccm.es> ihidalgo en jccm.es> escribió:
>>>
>>>
>>> No me has parecido para nada borde.
>>>
>>>
>>>
>>> Ok. Centrémonos en RF y bajemos el nº de parámetros a 2: ntree y
>>> nodesize.
>>>
>>> Te haces una parrilla de ntree: 100, 200, 300, 400, 500
>>>
>>> Otra de nodesize: 3, 6, 10
>>>
>>> Con esto tienes 15 combinaciones.
>>>
>>> Vamos al código. Simplemente crea una lista donde metes los resultados (y
>>> tienes que añadir los parámetros, que has omitido)
>>>
>>> Después graficas usando un mapa de calor para ver qué combinación de
>>> parámetros te da el mejor resultado (en abscisas ntree y en ordenadas
>>> nodesize). Una vez que veas los intervalos de parámetros que mejor se
>>> comportan, afinas el resultado con otra validación cruzada:
>>>
>>>
>>>
>>> for(i in 1:15){
>>>
>>>
>>>
>>> numeros<-sample(1:1500,1500*0.7)
>>>
>>>
>>>
>>> train<-datos[numeros,]
>>>
>>>
>>>
>>> test<-datos[-numeros,]
>>>
>>>
>>>
>>>
>>>
>>> #modeloRF
>>>
>>>
>>>
>>> resultadoRF <- list()
>>>
>>>
>>>
>>> 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)
>>>
>>> resultadoRF[[i]]<-rbind(resultado,data.frame(error=error,modelo="rf"))
>>>
>>>
>>>
>>> #modelo SVM
>>>
>>>
>>>
>>> resultadoSVM <- list()
>>>
>>>
>>>
>>> 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)
>>>
>>> resultadoSVM[[i]]<-rbind(resultado,data.frame(error=error,modelo="svm"))
>>>
>>>
>>>
>>> }
>>>
>>>
>>>
>>> Un saludo
>>>
>>>
>>>
>>> Isidro Hidalgo Arellano
>>>
>>> Observatorio del Mercado de Trabajo
>>>
>>> Consejería de Economía, Empresas y Empleo
>>>
>>>  <http://www.castillalamancha.es/> http://www.castillalamancha.es/
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> De: Jesús Para Fernández [mailto: <mailto:j.para.fernandez en hotmail.com>
>>> j.para.fernandez en hotmail.com]
>>> Enviado el: viernes, 02 de junio de 2017 12:50
>>> Para: Isidro Hidalgo Arellano < <mailto:ihidalgo en jccm.es>
>>> ihidalgo en jccm.es>;
>>> <mailto:r-help-es en r-project.org> r-help-es en r-project.org
>>> Asunto: Re: [R-es] CV en R
>>>
>>>
>>>
>>> Buenas,
>>>
>>>
>>>
>>> Puse los modelos lo mas simplificados, para centrar el tiro en el tema
>>> que
>>> me preocupa.
>>>
>>>
>>>
>>> Es una pena no poder hablar cara a cara, porque por email puedo sonar
>>> algo
>>> borde, pero no es así, al contrario estoy enormemente agradecido por tu
>>> ayuda, pero le veo un problema.
>>>
>>> Me dices que use un list para ir guardando el modelo, pero tal y como he
>>> propuesto en el bucle for, el modelo se crea 10 veces, es decir, que
>>> entiendo que si es un randomForest, tendria que entonces hacer una
>>> combinacion de esos 10 modelos con la funcion combine de RF para unir
>>> esos
>>> modelos, verdad?? Porque sino estaria en el mismo problema, generando un
>>> modelo generalista de una simple submuestra de los datos.
>>>
>>>
>>>
>>> Gracias por todo!!!
>>>
>>> Jesús
>>>
>>>
>>>
>>>   _____
>>>
>>> De: Isidro Hidalgo Arellano < <mailto:ihidalgo en jccm.es> ihidalgo en jccm.es
>>> <mailto: <mailto:ihidalgo en jccm.es> ihidalgo en jccm.es> >
>>> Enviado: viernes, 2 de junio de 2017 12:28
>>> Para: 'Jesús Para Fernández';  <mailto:r-help-es en r-project.org>
>>> r-help-es en r-project.org
>>> <mailto: <mailto:r-help-es en r-project.org> r-help-es en r-project.org>
>>>
>>> Asunto: RE: [R-es] CV en R
>>>
>>>
>>>
>>>
>>> No me había fijado en el código, te había he contestado teóricamente.
>>>
>>> A ver, en ese código tienes varios problemas:
>>>
>>> -          No especificas los parámetros del modelo (para eso es la
>>> validación cruzada). En RF tendrías que especificar el número de
>>> árboles, la
>>> cantidad de puntos con los que acotar la regresión, etc. En SVM el tipo
>>> de
>>> kernel que vas a usar, la sensibilidad… NO SE TRATA SÓLO de hacer modelos
>>> con diferentes conjuntos de entrenamiento, sino de buscar los parámetros
>>> que
>>> mejor ajustan los datos.
>>>
>>> Te pongo un ejemplo: imagínate que tienes mucho ruido, en ese caso, en
>>> cada
>>> punto de regresión, tendrás que tomar un número de puntos mayor
>>> (parámetro
>>> "nodesize")
>>>
>>> -          Respecto a no guardar los modelos, es muy fácil con una lista.
>>> Cada modelo que hagas, guárdalo en un lista, junto con los datos de
>>> resultados que quieras (incluyendo los parámetros de especificación del
>>> modelo)
>>>
>>> Te recomiendo 2 cosas:
>>>
>>> -          Usa el paquete caret
>>>
>>> -          Lee este libro:
>>>  <https://link.springer.com/book/10.1007/978-1-4614-6849-3>
>>> https://link.springer.com/book/10.1007/978-1-4614-6849-3
>>>
>>> Con el libro matas varios pájaros de un tiro:
>>>
>>> -          Aprendes algo de teoría (poca), que siempre viene bien
>>>
>>> -          El autor es el creador del paquete caret
>>>
>>> Si tienes tiempo, yo buscaría un curso del MIT que es muy bueno, aunque
>>> de
>>> los duros, te lo tienes que programar casi todo desde 0, pero cuando
>>> acabas,
>>> la teoría (con éste sí) la has machacado bastante bien, y sabes lo que
>>> hace
>>> un SVM, un RF. Es éste:
>>>
>>> <https://www.edx.org/course/learning-data-introductory-machi
>>> ne-caltechx-cs11
>>> 56x
>>> <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>
>>> >
>>> https://www.edx.org/course/learning-data-introductory-machin
>>> e-caltechx-cs115
>>> 6x
>>> <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>
>>>
>>>
>>>
>>>
>>> <
>>> <https://www.edx.org/course/learning-data-introductory-machi
>>> ne-caltechx-cs11
>>> 56x
>>> <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>
>>> >
>>> https://www.edx.org/course/learning-data-introductory-machin
>>> e-caltechx-cs11
>>> 56x
>>> <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>
>>> >
>>>
>>>
>>> <
>>> <https://www.edx.org/course/learning-data-introductory-machi
>>> ne-caltechx-cs11
>>> >
>>> https://www.edx.org/course/learning-data-introductory-machin
>>> e-caltechx-cs11
>>> 56x
>>> <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>>
>>> Learning From Data (Introductory Machine Learning) | edX
>>>
>>>  <http://www.edx.org> www.edx.org < <http://www.edx.org>
>>> http://www.edx.org>
>>>
>>> Introductory Machine Learning course covering theory, algorithms and
>>> applications. Our focus is on real understanding, not just "knowing."
>>>
>>>
>>>
>>> Tiene un libro asociado que está muy bien también.
>>>
>>> Si te da miedito, hay otro más suave, de los clásicos Hastie y
>>> Tibshirani:
>>>
>>> <https://lagunita.stanford.edu/courses/HumanitiesSciences/St
>>> atLearning/Winte
>>> r2016/about
>>> <https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>
>>> >
>>> https://lagunita.stanford.edu/courses/HumanitiesSciences/Sta
>>> tLearning/Winter
>>> 2016/about
>>> <https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>
>>>
>>>
>>>
>>> <
>>> <https://lagunita.stanford.edu/courses/HumanitiesSciences/St
>>> atLearning/Winte
>>> r2016/about
>>> <https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>
>>> >
>>> https://lagunita.stanford.edu/courses/HumanitiesSciences/Sta
>>> tLearning/Winte
>>> r2016/about
>>> <https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>>
>>> Statistical Learning | Stanford Lagunita
>>>
>>>  <http://lagunita.stanford.edu> lagunita.stanford.edu
>>>
>>> StatLearning now self paced! The active course run for Statistical
>>> Learning
>>> has ended, but the course is now available in a self paced mode. You are
>>> welcome to join ...
>>>
>>>
>>>
>>> Éstos también tienen 2 libros muy buenos. El resumido es en el que se
>>> basa
>>> el curso anterior.
>>>
>>>
>>>
>>> De: Jesús Para Fernández [mailto: <mailto:j.para.fernandez en hotmail.com>
>>> j.para.fernandez en hotmail.com]
>>> Enviado el: viernes, 02 de junio de 2017 12:04
>>> Para: Isidro Hidalgo Arellano < <mailto:ihidalgo en jccm.es>
>>> ihidalgo en jccm.es
>>> <mailto: <mailto:ihidalgo en jccm.es> ihidalgo en jccm.es> >;
>>>  <mailto:r-help-es en r-project.org> r-help-es en r-project.org <mailto:
>>> <mailto:r-help-es en r-project.org> r-help-es en r-project.org>
>>> Asunto: Re: [R-es] CV en R
>>>
>>>
>>>
>>> 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 < <mailto: <mailto:ihidalgo en jccm.es>
>>> ihidalgo en jccm.es>  <mailto:ihidalgo en jccm.es> ihidalgo en jccm.es>
>>> Enviado: viernes, 2 de junio de 2017 11:59
>>> Para: 'Jesús Para Fernández';  <mailto: <mailto:r-help-es en r-project.org>
>>> r-help-es en r-project.org>
>>>  <mailto: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/> http://www.castillalamancha.es/>
>>> <http://www.castillalamancha.es/> http://www.castillalamancha.es/
>>>
>>>
>>>  < <http://www.castillalamancha.es/> http://www.castillalamancha.es/>
>>> Inicio
>>> | Gobierno de Castilla-La Mancha
>>>
>>>  < <http://www.castillalamancha.es> http://www.castillalamancha.es>
>>> <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: <mailto:r-help-es-bounces en r-project.org>
>>> r-help-es-bounces en r-project.org>
>>> mailto: <mailto:r-help-es-bounces en r-project.org>
>>> 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:  <mailto: <mailto:r-help-es en r-project.org> r-help-es en r-project.org
>>> >
>>> <mailto:r-help-es en r-project.org> 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
>>>
>>>  <mailto: <mailto:R-help-es en r-project.org> R-help-es en r-project.org>
>>> <mailto:R-help-es en r-project.org> R-help-es en r-project.org
>>>  < <https://stat.ethz.ch/mailman/listinfo/r-help-es>
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es>
>>>
>>>  <https://stat.ethz.ch/mailman/listinfo/r-help-es>
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>>  <mailto:R-help-es en r-project.org> R-help-es en r-project.org
>>>  <https://stat.ethz.ch/mailman/listinfo/r-help-es>
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Saludos,
>>> Carlos Ortega
>>>  <http://www.qualityexcellence.es> www.qualityexcellence.es
>>>
>>>
>>>         [[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
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> *Manuel Spínola, Ph.D.*
>>> Instituto Internacional en Conservación y Manejo de Vida Silvestre
>>> Universidad Nacional
>>> Apartado 1350-3000
>>> Heredia
>>> COSTA RICA
>>> mspinola en una.cr <mspinola en una.ac.cr>
>>> mspinola10 en gmail.com
>>> Teléfono: (506) 8706 - 4662
>>> Personal website: Lobito de río
>>> <https://sites.google.com/site/lobitoderio/>
>>> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/>
>>>
>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



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