En Random Forest, ¿por qué se elige un subconjunto aleatorio de características a nivel de nodo en lugar de a nivel de árbol?

13

Mi pregunta: ¿Por qué el bosque aleatorio considera subconjuntos aleatorios de características para dividir a nivel de nodo dentro de cada árbol en lugar de a nivel de árbol ?

Antecedentes: esta es una cuestión de historia. Estaño Kam Ho publicó este trabajo en la construcción de "bosques de decisión", seleccionando al azar un subconjunto de características para el uso para el crecimiento de cada árbol en 1998. Varios años más tarde, en 2001, Leo Breiman publicó su seminal Bosque aleatoria de papel , en el que el subconjunto de características es al azar seleccionado en cada nodo dentro de cada árbol, no en cada árbol. Si bien Breiman citó a Ho, no explicó específicamente el movimiento de la selección de características aleatorias a nivel de árbol a nivel de nodo.

Me pregunto qué motivó específicamente este desarrollo. Parece que al seleccionar el subconjunto de características en el nivel del árbol se lograría la decorrelación deseada de los árboles.

Mi teoría: no he visto esto articulado en otro lugar, pero parece que el método de subespacio aleatorio sería menos eficiente en términos de obtener estimaciones de la importancia de la característica. Para obtener estimaciones de importancia variable, para cada árbol, las características se permutan aleatoriamente una por una, y se registra el aumento en la clasificación errónea o el aumento en el error para las observaciones fuera de bolsa. Las variables para las cuales la clasificación errónea o el aumento de error resultante de esta permutación aleatoria es alta son las de mayor importancia.

mppmip

Lo que he visto hasta ahora: hasta ahora, he leído el artículo de Breiman y el documento de Ho, y he hecho una amplia búsqueda en línea para comparar los métodos sin encontrar una respuesta definitiva. Tenga en cuenta que se hizo una pregunta similar antes. Esta pregunta va un poco más allá al incluir mi especulación / trabajo hacia una posible solución. Me interesaría cualquier respuesta, citas relevantes o estudios de simulación que comparen los dos enfoques. Si no llega ninguno, planeo ejecutar mi propia simulación comparando los dos métodos.

djlid
fuente
2
No citaré ninguna referencia, así que llamemos a esto un comentario. Si intenta comprender qué variables son útiles, puede darse el caso de que una variable específica sea crítica, pero solo en una pequeña parte de los datos. Puede descubrir esto empaquetando las variables a nivel de nodo. Nunca descubrirías esto con el embolsado a nivel de árbol.
meh
2
Estoy seguro de que Breiman tiene un comentario relacionado con esto en su (seminal) artículo seminal, 'Estadísticas- Las dos culturas'. Su punto allí es que a veces la importancia de una variable está enmascarada por otra variable. El empaquetamiento a nivel de nodo le permitirá a uno ver qué y cuándo para una variable.
meh
1
Gracias por los comentarios. Volviendo a mi idea sobre la eficiencia: supongamos que un par de variables están relacionadas y, como usted dijo, la importancia de una "enmascara" la importancia de otra. Si creáramos un predictor de RF con suficientes árboles y utilizáramos el subconjunto de funciones a nivel de árbol, ¿acaso no tendríamos suficientes árboles con la función "enmascarada" y sin la función "enmascarante" para llegar a la importancia de la primera sin el impacto de ¿el último? Creo que estamos hablando de aproximadamente la misma idea al menos. ¡Gracias!
djlid
44
Podrías, ¡pero considera cuántos árboles más tendrías que construir! Tampoco está claro. La variable A puede causar divisiones de tal manera que en ninguna de ellas la variable B brillará. Es claramente intrínsecamente más robusto muestrear a nivel de nodo. Para mí, se relaciona fundamentalmente con lo que debería ser el bootstrapping.
meh

Respuestas:

1

Supongamos que tenemos 10 características f1, f2, ..., f9, f10, luego, cuando tomamos un subconjunto para suponer f1, f3, f4, f8 de características en el nivel del árbol, entonces construimos el árbol completo tomando estas 4 características en consideración.

Calculamos la entropía, comparamos solo estas 4 características en cada nodo y tomamos esa característica que produce la entropía máxima. Esto no es de mucha utilidad ya que estamos restringiendo nuestro aprendizaje en árbol a solo esas 4 características. Contrariamente a esto, cuando tomamos un subconjunto de características, digamos f1, f8, f9 en el primer nodo, calculamos la entropía y las comparamos entre estas 3 características y elegimos la que da el valor máximo. En lugar de hacer crecer aún más el árbol con las mismas características, elegimos otro subconjunto de características, digamos f4, f7, f2 y hacemos la división en función de estas características. Supongamos que f8 se seleccionó en el primer nodo y f2 se seleccionó en el segundo nodo. Model es capaz de aprender la relación entre estos dos que no

De esta manera, el modelo puede aprender la relación entre diferentes características de una manera más diversificada. Este enfoque tendrá una serie de características exploradas en un solo árbol y, por lo tanto, se preservarán las relaciones entre ellas. Espero que lo tengas ahora :)

Shashank Kumar Mishra
fuente