Gemma Ruiz-Olalla
2018-Dec-13 09:00 UTC
[R-es] Random Forest con poca "n" y muchos predictores
Hola, Me he iniciado hace poco en Machine Learning, y tengo una duda sobre mis conjuntos de datos: el primero tiene 37 variables explicativas y 116 instancias, y el segundo, 140 variables explicativas y 195 instancias. El primero lo veo bien, ya que hay 3 veces más casos que variables explicativas, pero creo que el segundo caso puede suponer un problema al haber casi el mismo número de predictores que de casos, verdad? Para "arreglar" esto (en un Random Forest), tendría sentido hacer iterar el train() unas 50-100 veces? Ir guardando estos modelos resultantes (entrenados) en una lista, para luego hacer una especie de promedio con ellos, y éste resultante (sus parámetros ntree y mtry) usarlo para generar el modelo randomForest() definitivo. Tiene sentido, o qué podría hacer si no? Muchas gracias! -- Gemma Ruiz-Olalla gemma.ruizolalla en gmail.com [[alternative HTML version deleted]]
Rubén Fernández Casal
2018-Dec-17 11:50 UTC
[R-es] Random Forest con poca "n" y muchos predictores
Hola Gemma, En principio con el random forest no tendrías mucho problema. En general con pocos datos los métodos de aprendizaje estadístico / automático que requieren de una muestra de aprendizaje y otra de validación podrían tener problemas. En estos casos sería recomendable hacer bagging, remuestreo del conjunto de datos de entrenamiento, y eso ya es lo que hacen los algoritmos estándar de RF como el implementado en randomForest... Un saludo, Rubén. El jue., 13 de diciembre de 2018 10:01, Gemma Ruiz-Olalla < gemma.ruizolalla en gmail.com> escribió:> Hola, > > Me he iniciado hace poco en Machine Learning, y tengo una duda sobre mis > conjuntos de datos: el primero tiene 37 variables explicativas y 116 > instancias, y el segundo, 140 variables explicativas y 195 instancias. El > primero lo veo bien, ya que hay 3 veces más casos que variables > explicativas, pero creo que el segundo caso puede suponer un problema al > haber casi el mismo número de predictores que de casos, verdad? > > Para "arreglar" esto (en un Random Forest), tendría sentido hacer iterar el > train() unas 50-100 veces? Ir guardando estos modelos > resultantes (entrenados) en una lista, para luego hacer una especie de > promedio con ellos, y éste resultante (sus parámetros ntree y mtry) usarlo > para generar el modelo randomForest() definitivo. > > Tiene sentido, o qué podría hacer si no? > > Muchas gracias! > > -- > Gemma Ruiz-Olalla > gemma.ruizolalla en gmail.com > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola de nuevo, Se me olvidó comentar que adicionalmente RF selecciona al azar las variables explicativas en cada ajuste. Para más detalles recomendaría el libro: An Introduction to Statistical Learning (http://www-bcf.usc.edu/~gareth/ISL; disponible de forma gratuita en pdf), e incluso hacer el correspondiente curso gratuito https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter2016/about. Un saludo, Rubén. El 17/12/2018 a las 12:50, Rubén Fernández Casal escribió:> Hola Gemma, > > En principio con el random forest no tendrías mucho problema. En > general con pocos datos los métodos de aprendizaje estadístico / > automático que requieren de una muestra de aprendizaje y otra de > validación podrían tener problemas. En estos casos sería recomendable > hacer bagging, remuestreo del conjunto de datos de entrenamiento, y > eso ya es lo que hacen los algoritmos estándar de RF como el > implementado en randomForest... > > Un saludo, Rubén. > > > El jue., 13 de diciembre de 2018 10:01, Gemma Ruiz-Olalla > <gemma.ruizolalla en gmail.com <mailto:gemma.ruizolalla en gmail.com>> escribió: > > Hola, > > Me he iniciado hace poco en Machine Learning, y tengo una duda > sobre mis > conjuntos de datos: el primero tiene 37 variables explicativas y 116 > instancias, y el segundo, 140 variables explicativas y 195 > instancias. El > primero lo veo bien, ya que hay 3 veces más casos que variables > explicativas, pero creo que el segundo caso puede suponer un > problema al > haber casi el mismo número de predictores que de casos, verdad? > > Para "arreglar" esto (en un Random Forest), tendría sentido hacer > iterar el > train() unas 50-100 veces? Ir guardando estos modelos > resultantes (entrenados) en una lista, para luego hacer una especie de > promedio con ellos, y éste resultante (sus parámetros ntree y > mtry) usarlo > para generar el modelo randomForest() definitivo. > > Tiene sentido, o qué podría hacer si no? > > Muchas gracias! > > -- > Gemma Ruiz-Olalla > gemma.ruizolalla en gmail.com <mailto:gemma.ruizolalla en gmail.com> > > [[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 >-- Ruben Fernandez Casal https://rubenfcasal.github.io Department of Mathematics Faculty of Computer Science Universidade da Coruña Corporate email: ruben.fcasal <at> udc <dot> es -- [[alternative HTML version deleted]]