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 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 [[alternative HTML version deleted]]
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<http://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<mailto: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<mailto: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 [X]<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<http://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<http://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<http://www.qualityexcellence.es> El 2 de junio de 2017, 19:58, Jesús Para Fernández <j.para.fernandez en hotmail.com<mailto: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<mailto: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<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<mailto:ihidalgo en jccm.es>>; 'Manuel Spínola' <mspinola10 en gmail.com<mailto:mspinola10 en gmail.com>> CC: 'Carlos Ortega' <cof en qualityexcellence.es<mailto:cof en qualityexcellence.es>>; 'Lista R' <r-help-es en r-project.org<mailto: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<mailto: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<http://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] Enviado el: viernes, 02 de junio de 2017 14:42 Para: Isidro Hidalgo Arellano <ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>> CC: Jesús Para Fernández <j.para.fernandez en hotmail.com<mailto:j.para.fernandez en hotmail.com>>; Carlos Ortega <cof en qualityexcellence.es<mailto:cof en qualityexcellence.es>>; Lista R <r-help-es en r-project.org<mailto: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<http://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<mailto: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<mailto:j.para.fernandez en hotmail.com>] Enviado el: viernes, 02 de junio de 2017 14:21 Para: Carlos Ortega <cof en qualityexcellence.es<mailto:cof en qualityexcellence.es>> CC: Lista R <r-help-es en r-project.org<mailto:r-help-es en r-project.org>>; Isidro Hidalgo Arellano <ihidalgo en jccm.es<mailto: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<mailto:cof en qualityexcellence.es>> cof en qualityexcellence.es<mailto: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> <http://www.qualityexcellence.es/> QualityExcellence <http://www.qualityexcellence.es> www.qualityexcellence.es<http://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<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto: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<mailto:j.para.fernandez en hotmail.com>> j.para.fernandez en hotmail.com<mailto: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<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>>; <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto: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<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto:ihidalgo en jccm.es> <mailto: <mailto:ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto: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<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto:r-help-es en r-project.org> <mailto: <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto: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-machine-caltechx-cs11 56x<https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>> https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs115 6x<https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x> < <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs11 56x<https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>> https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs11 56x<https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs1156x>> < <https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs11>https://www.edx.org/course/learning-data-introductory-machine-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> 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/StatLearning/Winte r2016/about<https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>> https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter 2016/about<https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about> < <https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winte r2016/about<https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>> https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winte r2016/about<https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about>> Statistical Learning | Stanford Lagunita <http://lagunita.stanford.edu> lagunita.stanford.edu<http://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<mailto:j.para.fernandez en hotmail.com>> j.para.fernandez en hotmail.com<mailto: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<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto:ihidalgo en jccm.es> <mailto: <mailto:ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>> >; <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto:r-help-es en r-project.org> <mailto: <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto: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<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>> <mailto:ihidalgo en jccm.es<mailto:ihidalgo en jccm.es>> ihidalgo en jccm.es<mailto: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<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto:r-help-es en r-project.org>> <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto: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<http://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<mailto:r-help-es-bounces en r-project.org>> r-help-es-bounces en r-project.org<mailto:r-help-es-bounces en r-project.org>> mailto: <mailto:r-help-es-bounces en r-project.org<mailto:r-help-es-bounces en r-project.org>> r-help-es-bounces en r-project.org<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: <mailto: <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto:r-help-es en r-project.org>> <mailto:r-help-es en r-project.org<mailto:r-help-es en r-project.org>> r-help-es en r-project.org<mailto: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<mailto:R-help-es en r-project.org>> R-help-es en r-project.org<mailto:R-help-es en r-project.org>> <mailto:R-help-es en r-project.org<mailto:R-help-es en r-project.org>> R-help-es en r-project.org<mailto: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<mailto:R-help-es en r-project.org>> R-help-es en r-project.org<mailto: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<http://www.qualityexcellence.es> [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto: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<mailto:mspinola en una.ac.cr> mspinola10 en gmail.com<mailto: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<http://www.qualityexcellence.es> -- Saludos, Carlos Ortega www.qualityexcellence.es<http://www.qualityexcellence.es> [[alternative HTML version deleted]]
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]]