miércoles, 8 de mayo de 2013

RandomForest

 

Definición

 

Random Forests es una técnica de agregación desarrollada por Leo Breiman, que mejora la precisión en la clasificación mediante la incorporación de aleatoriedad en la construcción de cada clasificador individual.
Esta aleatorización puede introducirse en la partición del espacio (construcción del árbol), así como en la muestra de entrenamiento.

Los árboles y los bosques. El Random Forest comienza con una técnica de aprendizaje automático estándar llamada "árbol de decisiones", que, en cuanto al conjunto, corresponde a un aprendizaje. En un árbol de decisión, una entrada se introduce en la parte superior y hacia abajo a medida que atraviesa el árbol de los datos se acumulan en conjuntos más pequeños y más pequeños(sobra).




Características de random forest

  • No es superable en la precisión, de entre los algoritmos actuales.
  • Funciona de manera eficiente en grandes bases de datos.
  • Puede manejar miles de variables de entrada sin borrado de variables.
  • Aporta estimaciones de qué variables son importantes en la clasificación.
  • Se genera una estimación objetiva interna de la generalización de error a medida que avanza la construcción del bosque.
  • Tiene un método eficaz para la estimación de los datos faltantes y mantiene la precisión cuando una gran parte de los datos que faltan.
  • Tiene métodos para error de equilibrio en la población de conjuntos de datos no balanceados de clase.
  • Los bosques generados se pueden guardar para uso futuro en otros datos.
  • Los prototipos que calcula dan información acerca de la relación entre las variables y la clasificación.
  • Se calcula proximidades entre pares de casos que se pueden utilizar en la agrupación, la localización de los valores atípicos, o (por escala) dar interesantes vistas de los datos.
  • Las caracterésiticas anteriores se pueden extender a los datos no etiquetados, que conducen a agrupamiento no supervisado, vistas de datos y la detección de valores atípicos.
  • Ofrece un método experimental para la detección de iteracciones de variables.

Algoritmo:

 

Así es como se formó este sistema, para un número determinado de árboles T:
  1. Muestra N casos al azar con el reemplazo para crear un subconjunto de los datos. El subconjunto debe ser aproximadamente 66% del conjunto total.
  2. En cada nodo:
    1. Para un número m, las variables predictoras m son seleccionados al azar entre todas las variables predictoras.
    2. La variable de predicción que proporciona la mejor división, de acuerdo con una función objetiva, se utiliza para hacer una división binaria en ese nodo.
    3. En el siguiente nodo, elije otras m variables al azar entre todas las variables predictoras y hace lo mismo.
Dependiendo del valor de m, hay tres sistemas ligeramente diferentes:
  • Selección aleatoria divisor: m = 1
  • Empaquetadores de Breiman: m = número total de variables de predictor
  • Random forest: m << número de variables predictoras. Brieman sugiere tres posibles valores de m: ½ m √, √ m y 2 m
Ejecución de Random Forest. Cuando una nueva entrada se introduce en el sistema, es dirigida hacia abajo todos los árboles. El resultado puede ser o bien un promedio o media ponderada de todos los nodos terminales que se alcanzan, o, en el caso de las variables categóricas, una mayoría de votantes.
Tenga en cuenta que:
  • Con un gran número de predictores, el predictor conjunto elegible será muy diferente de nodo a nodo.
  • Cuanto mayor sea la correlación entre los nodos del árbol, mayor será la tasa de error de random forest, es conveniente tener los arboles lo menos correlacionados como sea posible.
  • Si m baja, tanto la correlación entre los árboles y la fuerza de los árboles individuales bajan. Así que un poco de valor óptimo de m debe ser descubierto.
Fortalezas y debilidades. Los tiempos de ejecución de los bosques al azar son bastantes rápidos, y son capaces de tratar con datos desbalanceados y desaparecidos. Debilidades son que cuando se utiliza para la regresión no pueden predecir más allá de la gama en los datos de entrenamiento, y pueden aparecer conjuntos de datos con ruido. 


Una estimación de la tasa de error se puede obtener, sobre la base de los datos de entrenamiento, por lo siguiente: 
  1.   En cada iteración de arranque, predecir los datos no en la muestra de arranque (lo Breiman llamadas "fuera de bolsa", o fuera de banda, datos) utilizando el árbol crecido con la muestra de arranque. 
  2.  Agregar las predicciones fuera de banda (OOB) (En promedio, cada punto de datos sería fuera de la bolsa alrededor de 36% de los tiempos, por lo que agregan estas predicciones.) calcular la tasa de error,y lo llaman la estimación de la tasa de OOB error.

Información adicional del RandomForest

 

El paquete RandomForest produce opcionalmente dos datos adicionales: una medida de la  importancia de las variables de predicción, y una medida  de la estructura interna de los datos (la proximidad de diferentes puntos de datos entre uno y otro)

Importancia de variable: Este es un concepto difícil de definir, en general, debido a la importancia de una variable respecto a su interacción con otras variables. El algoritmo random forest calcula la importancia de una variable mirando cuánta predicción de error aumenta cuando los datos (OOB) para esa variable sean permutados, mientras todos los demás se quedan sin cambio. 

Medida de proximidad: (i, j) elemento de la proximidad de la matriz producida por random forest es la fracción de los árboles en los que los elementos i y j que caen en el mismo nodo terminal. La intuición es que las observaciones similares deben estar en los mismos nodos terminales con más frecuencia que los diferentes. La matriz de proximidad se puede utilizar para identificar la estructura de los datos o de aprendizaje no supervisado con Random Forest.

 Ventajas

 

Las ventajas del random forest son:
  • Ser uno de los más certeros algoritmos de aprendizaje disponible. Para muchos sets de datos produce un clasificador grandemente certero.
  • Correr eficientemente en grandes bases de datos.
  • Poder manejar cientos de variables entrantes sin excluir ninguna.
  • Dar estimados de qué variables son importantes en la clasificación.
  • Tener un método eficaz para estimar datos perdidos y mantener la exactitud cuando una gran proporción de los datos está perdida.
  • Computar los prototipos que dan información sobre la relación entre las variables y la clasificación.
  • Computar las proximidades entre los pares de casos que pueden usarse en los grupos, localizando outliers, o (ascendiendo) dando vistas interesantes de los datos.
  • Ofrecer un método experimental para detectar las interacciones de las variables.

Desventajas

 

  • Random forests han sido observados para sobreajustar en ciertos sets de datos con tareas de clasificación/regresión ruidosas.
  • A diferencia de los arboles de decisión, la clasificación hecha por random forests es difícil de interpretar por el hombre.
  • Para los datos que incluyen variables categóricas con diferente número de niveles, el random forest es parciales 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. Los métodos como las permutaciones parciales se usaron para resolver el problema.
  • Si los datos contienen grupos de atributos correlacionados de relevancia similar para el rendimiento, entonces los grupos más pequeños están favorecidos sobre los grupos más grandes.
Referencias:
[1] wikipedia:
http://es.wikipedia.org/wiki/Random_forest

[2]Weka (código):
http://weka.sourceforge.net/doc/weka/classifiers/trees/RandomForest.html

[3] Classification and regresion by randomForest:
http://www.webchem.science.ru.nl/PRiNS/rF.pdf

[4] RandomForest Leo Breiman and Adele Cutler:
http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm



4 comentarios: