68 votos

Diferencia entre los bosques aleatorios y los árboles extremadamente aleatorios

He entendido que los bosques aleatorios y los árboles extremadamente aleatorios difieren en el sentido de que las divisiones de los árboles en los bosques aleatorios son deterministas, mientras que son aleatorias en el caso de los árboles extremadamente aleatorios (para ser más exactos, la siguiente división es la mejor división entre las divisiones uniformes aleatorias en las variables seleccionadas para el árbol actual). Pero no entiendo del todo el impacto de estas diferentes divisiones en varias situaciones.

  • ¿Cómo se comparan en términos de sesgo/varianza?
  • ¿Cómo se comparan en presencia de variables irrelevantes?
  • ¿Cómo se comparan en presencia de variables correlacionadas?

45voto

dotancohen Puntos 595

Los árboles extra (aleatorios) (ET) artículo contiene un análisis de sesgo-varianza. En la Fig. 6 (en la página 16), se puede ver una comparación con múltiples métodos, incluyendo RF en seis pruebas (clasificación en árbol y tres de regresión).

Ambos métodos son más o menos iguales, siendo el ET un poco peor cuando hay un alto número de características ruidosas (en conjuntos de datos de alta dimensión).

Dicho esto, siempre que la selección de características (quizás manual) sea casi óptima, el rendimiento es más o menos el mismo, sin embargo, los ET pueden ser computacionalmente más rápidos.

Del propio artículo:

El análisis del algoritmo y la determinación de el valor óptimo de K en varias variantes de problemas de prueba han demostrado que el valor es en depende en principio de las características del problema, en particular de la proporción de atributos irrelevantes . [...] El análisis de sesgo/varianza análisis ha demostrado que los Extra-Trees funcionan por Varianza decreciente mientras que al mismo tiempo aumento del sesgo . [...] Cuando la aleatoriedad aleatoriedad se incrementa por encima del nivel óptimo, la varianza disminuye ligeramente mientras que el sesgo aumenta a menudo de forma significativa.

No hay bala de plata, como siempre.


Pierre Geurts, Damien Ernst, Louis Wehenkel. "Árboles extremadamente aleatorios"

32voto

kimura Puntos 11

ExtraTreesClassifier es como un hermano de RandomForest pero con 2 diferencias importantes.

enter image description here

Estamos construyendo múltiples árboles de decisión. Para crear varios árboles, necesitamos varios conjuntos de datos. La mejor práctica es que no entrenamos los árboles de decisión en el conjunto de datos completo, sino que entrenamos sólo una fracción de los datos (alrededor del 80%) para cada árbol. En un bosque aleatorio, extraemos observaciones con reemplazo. Así que podemos tener repetición de observaciones en un bosque aleatorio. En un ExtraTreesClassifier, extraemos observaciones sin reemplazo, por lo que no tendremos repetición de observaciones como en un bosque aleatorio.

La división es el proceso de convertir un nodo padre no homogéneo en 2 nodos hijos homogéneos (lo mejor posible). En RandomForest, se selecciona la mejor división para convertir el padre en los dos nodos hijos más homogéneos. En ExtraTreesClassifier, selecciona una división aleatoria para dividir el nodo padre en dos nodos hijos aleatorios.

Veamos algunos métodos de ensemble ordenados de mayor a menor varianza, terminando en ExtraTreesClassifier.

1. Árbol de decisión (alta varianza)

Un único árbol de decisión suele ajustarse en exceso a los datos de los que aprende porque sólo aprende de una vía de decisiones. Las predicciones de un único árbol de decisión no suelen ser precisas en los nuevos datos.

2. Bosque aleatorio (varianza media)

Los modelos de bosque aleatorio reducen el riesgo de sobreajuste al introducir la aleatoriedad:

  • construcción de árboles múltiples (n_estimadores)
  • extraer observaciones con reemplazo (es decir, una muestra bootstrap)
  • dividir los nodos en la mejor división entre un subconjunto aleatorio de las características seleccionadas en cada nodo. La división es un proceso para convertir un nodo padre no homogéneo en 2 nodos hijos homogéneos (lo mejor posible).

3. Árboles adicionales (baja varianza)

Extra Trees es como un bosque aleatorio, en el sentido de que construye múltiples árboles y divide los nodos utilizando subconjuntos aleatorios de características, pero con dos diferencias clave: no hace bootstrap de las observaciones (lo que significa que muestrea sin reemplazo), y los nodos se dividen en divisiones aleatorias, no en las mejores divisiones. En resumen, ExtraTrees:

  • construye múltiples árboles con bootstrap = Falso por defecto, lo que significa que muestrea sin reemplazo
  • los nodos se dividen en base a divisiones aleatorias entre un subconjunto aleatorio de las características seleccionadas en cada nodo

En Extra Trees, la aleatoriedad no procede del bootstrap de los datos, sino que proviene de las divisiones aleatorias de todas las observaciones. ExtraTrees recibe su nombre de (Extremely Randomized Trees).

6voto

Even Mien Puntos 10122

¡Muchas gracias por las respuestas! Como todavía tenía preguntas, he realizado algunas simulaciones numéricas para tener más conocimientos sobre el comportamiento de estos dos métodos.

  • Los árboles adicionales parecen mantener un mayor rendimiento en presencia de características ruidosas.

La imagen siguiente muestra el rendimiento (evaluado con validación cruzada) a medida que se añaden al conjunto de datos columnas aleatorias irrelevantes para el objetivo. El objetivo es sólo una combinación lineal de las tres primeras columnas. random forest vs extra trees in presence of irrelevant variables

  • Cuando todas las variables son relevantes, ambos métodos parecen alcanzar el mismo rendimiento,

  • Los árboles adicionales parecen ser tres veces más rápidos que el bosque aleatorio (al menos, en la implementación de scikit learn)

Fuentes

Enlace al artículo completo : bosque aleatorio frente a árboles adicionales .

4voto

sml Puntos 1270

La respuesta es que depende. Te sugiero que pruebes tanto el bosque aleatorio como los árboles adicionales en tu problema. Pruebe un bosque grande (1000 - 3000 árboles/estimadores, n_estimadores en sklearn) y ajuste el número de características consideradas en cada división (max_features en sklearn) así como el mínimo de muestras por división (min_samples_split en sklearn) y la máxima profundidad del árbol (max_depth en sklearn). Dicho esto, hay que tener en cuenta que El sobreajuste puede ser una forma de sobreajuste.

Aquí hay dos problemas en los que trabajé personalmente en los que los árboles adicionales resultaron útiles con datos muy ruidosos:

Bosques de decisión para la clasificación mediante aprendizaje automático de grandes conjuntos de características del fondo marino con ruido

Una eficiente predicción distribuida del desorden de las proteínas con muestras pegadas

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X