Random forest

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

Random forest (or random forests) es una combinación de árboles predictores tal que cada árbol depende de los valores de un vector aleatorio probado independientemente y con la misma distribución para cada uno de estos. Es una modificación sustancial de bagging que construye una larga colección de árboles no correlacionados y luego los promedia.

El algoritmo para inducir un random forest fue desarrollado por Leo Breiman[1] y Adele Cutler y Random forests es su marca de fábrica. El término aparece de la primera propuesta de Random decision forests, hecha por Tin Kam Ho de Bell Labs en 1995. El método combina la idea de bagging de Breiman y la selección aleatoria de atributos, introducida independientemente por Ho,[2] [3] Amit y Geman,[4] para construir una colección de árboles de decisión con variación controlada.

La selección de un subconjunto aleatorio de atributos es un ejemplo del método random subspace, el que, según la formulación de Ho, es una manera de llevar a cabo la discriminación estocástica[5] propuesta por Eugenio Kleinberg.

En muchos problemas el rendimiento del algoritmo random forest es muy similar a la del boosting, y es más simple de entrenar y ajustar. Como una consecuencia el random forests es popular y es ampliamente utilizado.

Definición de Random forests[editar]

La idea esencial del bagging es promediar muchos modelos ruidosos pero aproximadamente imparciales, y por tanto reducir la variación. Los árboles son los candidatos ideales para el bagging, dado que ellos pueden registrar estructuras de interacción compleja en los datos, y si crecen suficientemente profundo, tienen relativamente baja parcialidad. Producto de que los árboles son notoriamente ruidosos, ellos se benefician grandemente al promediar.

Cada árbol es construido usando el siguiente algoritmo:

  1. Sea N el numero de casos de prueba, M es el numero de variables en el clasificador.
  2. Sea m el numero de variables de entrada a ser usado para determinar la decisión en un nodo dado; m debe ser mucho menor que M
  3. Elegir un conjunto de entrenamiento para este árbol y usar el resto de los casos de prueba para estimar el error.
  4. Para cada nodo del árbol, elegir aleatoriamente m variables en las cuales basar la decisión. Calcular la mejor partición a partir de las m variables del conjunto de entrenamiento.

Para la predicción un nuevo caso es empujado hacia abajo por el árbol. Luego se le asigna la etiqueta del nodo terminal donde termina. Este proceso es iterado por todos los arboles en el ensamblado, y la etiqueta que obtenga la mayor cantidad de incidencias es reportada como la predicción.

Características (o rasgos) y Ventajas[editar]

Las ventajas del random forests son:[6]

  • Es uno de los algoritmos de aprendizaje más certeros que hay disponible. Para un set de datos lo suficientemente grande produce un clasificador muy certero.[7]
  • Corre eficientemente en bases de datos grandes.
  • Puede manejar cientos de variables de entrada sin excluir ninguna.
  • Da estimados de qué variables son importantes en la clasificación.
  • Tiene un método eficaz para estimar datos perdidos y mantener la exactitud cuando una gran proporción de los datos está perdida.
  • Computa los prototipos que dan información sobre la relación entre las variables y la clasificación.
  • Computa las proximidades entre los pares de casos que pueden usarse en los grupos, localizando valores atípicos, o (ascendiendo) dando vistas interesantes de los datos.
  • Ofrece un método experimental para detectar las interacciones de las variables.

Desventajas[editar]

  • Se ha observado que Random forests sobreajusta en ciertos grupos de datos con tareas de clasificación/regresión ruidosas.[8]
  • A diferencia de los árboles de decisión, la clasificación hecha por random forests es difícil de interpretar por el hombre.[9]
  • Para los datos que incluyen variables categóricas con diferente número de niveles, el random forests se parcializa a favor de esos atributos con más niveles. Por consiguiente, la posición que marca la variable no es fiable para este tipo de datos. Métodos como las permutaciones parciales se han usado para resolver el problema[10] [11]
  • Si los datos contienen grupos de atributos correlacionados con similar relevancia para el rendimiento, entonces los grupos más pequeños están favorecidos sobre los grupos más grandes.[12]

Visualización[editar]

Datos de entrenamiento.
Visualización de Random Forest después del entrenamiento.
Modelo de regresión logística después de entrenamiento.

Para formar una visualización intuitiva del espacio-modelo representado por un random forest, un set de datos que consiste en 200 puntos aleatorios (100 puntos verdes y 100 puntos rojos) se creó. Los puntos verdes eran arrastrados a partir de una distribución Gaussian con un centroid a (0,1), y los puntos rojos eran arrastrados de una distribución de Gaussian con un centroid a (1,0). En ambos casos, la variación era circular con un radio medio de 1.

El modelo del random forest, consistente de 50 árboles, fue entrenado sobre estos datos. La pureza del color indica la porción de los 50 árboles que votaron de acuerdo. El significativo over-fit puede observarse en esta visualización.

Como contraste, un modelo de regresión logístico (que está algo less-prone to over-fit) fue también entrenado sobre estos mismos datos.


Véase también[editar]

Referencias[editar]

  1. Breiman, Leo (2001). «Random Forests». Machine Learning 45 (1):  pp. 5–32. doi:10.1023/A:1010933404324. 
  2. Ho, Tin Kam (1995). «Random Decision Forest». Proceedings of the 3rd International Conference on Document Analysis and Recognition, Montreal, QC, 14–16 August 1995. pp. 278–282. 
  3. Ho, Tin Kam (1998). «The Random Subspace Method for Constructing Decision Forests». IEEE Transactions on Pattern Analysis and Machine Intelligence 20 (8):  pp. 832–844. doi:10.1109/34.709601. http://cm.bell-labs.com/cm/cs/who/tkh/papers/df.pdf. 
  4. Amit, Yali; Geman, Donald (1997). «Shape quantization and recognition with randomized trees». Neural Computation 9 (7):  pp. 1545–1588. doi:10.1162/neco.1997.9.7.1545. http://www.cis.jhu.edu/publications/papers_in_database/GEMAN/shape.pdf. 
  5. Kleinberg, Eugene (1996). «An Overtraining-Resistant Stochastic Modeling Method for Pattern Recognition». Annals of Statistics 24 (6):  pp. 2319–2349. doi:10.1214/aos/1032181157. http://kappa.math.buffalo.edu/aos.pdf. 
  6. [1]
  7. Caruana, Rich; Karampatziakis, Nikos; Yessenalina, Ainur (2008). «An empirical evaluation of supervised learning in high dimensions». Proceedings of the 25th International Conference on Machine Learning (ICML). 
  8. Segal, Mark R. (abril 14 de 2004). Machine Learning Benchmarks and Random Forest Regression. Center for Bioinformatics & Molecular Biostatistics. 
  9. Berthold, Michael R. (2010). Guide to Intelligent Data Analysis. Springer London. 
  10. Deng,H.; Runger, G.; Tuv, E. (2011). «Bias of importance measures for multi-valued attributes and solutions». Proceedings of the 21st International Conference on Artificial Neural Networks (ICANN). pp. 293–300. 
  11. Altmann A, Tolosi L, Sander O, Lengauer T (2010). «Permutation importance:a corrected feature importance measure». Bioinformatics. doi:10.1093/bioinformatics/btq134. http://bioinformatics.oxfordjournals.org/content/early/2010/04/12/bioinformatics.btq134.abstract. 
  12. Tolosi L, Lengauer T (2011). «Classification with correlated features: unreliability of feature ranking and solutions.». Bioinformatics. doi:10.1093/bioinformatics/btr300. http://bioinformatics.oxfordjournals.org/content/27/14/1986.abstract. 

Implementación Comercial[editar]

  • [2] Random Forests.

Implementaciones Open source[editar]