Bosque aleatorio y algoritmo de árbol de decisión

14

Un bosque aleatorio es una colección de árboles de decisión que siguen el concepto de ensacado. Cuando pasamos de un árbol de decisión al siguiente árbol de decisión, entonces, ¿cómo avanza la información aprendida por el último árbol de decisión al siguiente?

Porque, según tengo entendido, no hay nada como un modelo entrenado que se crea para cada árbol de decisión y luego se carga antes de que el siguiente árbol de decisión comience a aprender del error mal clasificado.

¿Entonces, cómo funciona?

Abhay Raj Singh
fuente
"Cuando pasamos de un árbol de decisión al siguiente árbol de decisión". Esto sugiere un proceso lineal. Hemos creado implementaciones paralelas donde trabajamos en un árbol por núcleo de CPU; esto funciona perfectamente bien a menos que use un generador de números aleatorios por núcleo de CPU en el entrenamiento, todos los cuales comparten la misma semilla. En ese caso, puede terminar con muchos árboles idénticos.
MSalters

Respuestas:

23

No se pasa información entre los árboles. En un bosque aleatorio, todos los árboles están distribuidos de manera idéntica, porque los árboles se cultivan utilizando la misma estrategia de aleatorización para todos los árboles. Primero, tome una muestra de arranque de los datos, y luego haga crecer el árbol usando divisiones de un subconjunto de características elegidas al azar. Esto sucede para cada árbol individualmente sin prestar atención a ningún otro árbol en el conjunto. Sin embargo, los árboles se correlacionan puramente en virtud de que cada árbol se entrena en una muestra de un grupo común de datos de entrenamiento; Múltiples muestras del mismo conjunto de datos tenderán a ser similares, por lo que los árboles codificarán parte de esa similitud.

Puede que le resulte útil leer una introducción a los bosques aleatorios de un texto de alta calidad. Uno es "Bosques al azar" de Leo Breiman. También hay un capítulo en Elementos del aprendizaje estadístico de Hastie et al.

Es posible que haya confundido bosques aleatorios con métodos de impulso como AdaBoost o árboles impulsados ​​por gradiente. Los métodos de refuerzo no son lo mismo, porque usan información sobre el desajuste de rondas de refuerzo anteriores para informar la próxima ronda de refuerzo. Ver: ¿El bosque aleatorio es un algoritmo de impulso?

Sycorax dice reinstalar a Mónica
fuente
10

Los bosques aleatorios son una colección de múltiples árboles de decisión que se entrenan independientemente uno del otro . Por lo tanto, no existe una noción de entrenamiento secuencialmente dependiente (como es el caso de los algoritmos de refuerzo ). Como resultado de esto, como se menciona en otra respuesta, es posible hacer un entrenamiento paralelo de los árboles.

Es posible que desee saber de dónde proviene lo "aleatorio" en el bosque aleatorio: hay dos formas en que la aleatoriedad se inyecta en el proceso de aprendizaje de los árboles. Primero es la selección aleatoria de puntos de datos utilizados para entrenar a cada uno de los árboles, y segundo es la selección aleatoria de las características utilizadas en la construcción de cada árbol. Como un árbol de decisión único generalmente tiende a sobreajustarse en los datos, la inyección de aleatoriedad de esta manera resulta en tener un montón de árboles donde cada uno de ellos tiene una buena precisión (y posiblemente sobreajuste) en un subconjunto diferente de los datos de entrenamiento disponibles . Por lo tanto, cuando tomamos el promedio de las predicciones hechas por todos los árboles, observamos una reducción en el sobreajuste (en comparación con el caso de entrenar un solo árbol de decisión en todos los datos disponibles ).

MN

  1. i=0
  2. MMSi
  3. iTiSi
    • el proceso de entrenamiento es lo mismo que entrenar un árbol de decisión, excepto con la diferencia de que en cada nodo del árbol solo se usa una selección aleatoria de características para la división en ese nodo.
  1. i=i+1
  2. i<N

T1T2TN

  • Si se usa para una tarea de regresión, tome el promedio de predicciones como la predicción final del bosque aleatorio.

  • Si se usa para una tarea de clasificación, use una estrategia de votación suave : tome el promedio de las probabilidades predichas por los árboles para cada clase, luego declare la clase con la probabilidad promedio más alta como la predicción final del bosque aleatorio.

Además, vale la pena mencionar que es posible entrenar a los árboles de una manera secuencialmente dependiente y eso es exactamente lo que hace el algoritmo de árboles impulsados ​​por gradiente , que es un método totalmente diferente de los bosques aleatorios.

hoy
fuente
8

El bosque aleatorio es un algoritmo de embolsado en lugar de un algoritmo de refuerzo.

El bosque aleatorio construye el árbol independientemente usando una muestra aleatoria de los datos. Una implementación paralela es posible.

Es posible que desee comprobar el aumento de gradiente donde los árboles se construyen secuencialmente donde el nuevo árbol intenta corregir el error cometido anteriormente.

Siong Thye Goh
fuente
6

Entonces, ¿cómo funciona?

Random Forest es una colección de árboles de decisión. Los árboles se construyen de forma independiente. Cada árbol está entrenado en un subconjunto de características y un subconjunto de una muestra elegida con reemplazo.

Al predecir, digamos para Clasificación, los parámetros de entrada se dan a cada árbol en el bosque y cada árbol "vota" en la clasificación, gana la etiqueta con la mayoría de los votos.

¿Por qué usar Random Forest sobre Simple Decision Tree? Sesgo / Variación de compensación. Random Forest se construyen a partir de árboles mucho más simples en comparación con un solo árbol de decisión. En general, los bosques aleatorios proporcionan una gran reducción del error debido a la varianza y un pequeño aumento del error debido al sesgo.

Akavall
fuente
Si estamos eligiendo diferentes características para cada árbol de decisión, entonces, ¿cómo mejora el aprendizaje de un conjunto de características en el árbol de decisión anterior mientras enviamos los valores mal clasificados por adelantado, ya que para el próximo árbol de decisión hay un conjunto totalmente nuevo de características?
Abhay Raj Singh
3
@AbhayRajSingh: no "envía los valores mal clasificados por delante" en Random Forest. Como dice Akavall, "Los árboles se construyen de forma independiente"
Henry
1

Sí, como dijeron los autores, el algoritmo Random Forest es un algoritmo de embolsado, no de refuerzo.

El embolsado puede reducir la varianza del clasificador, porque los algoritmos base, que se ajustan a diferentes muestras y sus errores se compensan mutuamente en la votación. El ensacado se refiere a promediar versiones ligeramente diferentes del mismo modelo como un medio para mejorar el poder predictivo. Para aplicar el ensacado, simplemente construimos árboles de regresión B utilizando conjuntos de entrenamiento B bootstrapped y promediamos las predicciones resultantes.

Una aplicación común y bastante exitosa de ensacado es el Bosque Aleatorio

Pero al construir estos árboles de decisión en un bosque aleatorio, cada vez que se considera una división en un árbol, mse elige una muestra aleatoria de predictores como candidatos divididos del conjunto completo de predictores p. La división solo puede usar uno de esos mpredictores.

Daniel Chepenko
fuente