30 votos

¿Sería posible/práctico un bosque aleatorio con múltiples salidas?

  1. Los bosques aleatorios (RF) son un método competitivo de modelado/minado de datos.

  2. Un modelo de RF tiene una salida: la variable de salida/predicción.

  3. El enfoque ingenuo para modelar múltiples salidas con RFs sería construir una RF para cada variable de salida. Así que tenemos N modelos independientes independientes, y si hay correlación entre las variables de salida tendremos una estructura de modelo redundante/duplicada. Esto podría ser muy desperdicio. Además, como regla general, un mayor número de variables del modelo implica un modelo más sobreajustado (menos generalización). No estoy seguro de que esto se aplique aquí, pero probablemente sí.

En principio podríamos tener una RF con múltiples salidas. La variable de predicción es ahora un vector (n-tupla). Los nodos de decisión de cada árbol de decisión dividen ahora el conjunto de vectores objetivo/predicción basado en un vector umbral, me imagino que este umbral se toma como un plano en el espacio n-dimensional y que por lo tanto podemos determinar en qué lado del vector umbral se encuentra cada uno de los vectores objetivo.

El valor de predicción óptimo para cada lado de la división de la decisión es la media (centroide) calculada para los vectores de cada lado.

Encontrar el punto de división óptimo cuando se trabaja con variables únicas es trivial y computacionalmente rápido/eficiente. Para una n-tupla no podemos encontrar la división óptima (o al menos se vuelve inviable computacionalmente computacionalmente inviable a medida que aumenta N), pero podemos encontrar una división casi óptima utilizando un método de tipo Monte Carlo (o algún híbrido de Monte Carlo y el gradiente local).

¿Funcionaría esto realmente? Es decir, ¿sólo mapearía los pares de entrenamiento sin generalizar? ¿Existe ya esta técnica con otro nombre?

También podría considerar cómo se relaciona esto con las redes neuronales, como las máquinas de Boltzmann restringidas (RBM) y las redes de creencia profunda.

0 votos

Buscando en Google "bosque aleatorio multietiqueta" se ve que esto se ha hecho incluso de varias formas distintas; de todos modos, he estado jugando con este enfoque de muchos binarios-rfs en la recuperación de información musical y lo hacía bastante bien.

1 votos

Le sugiero que este artículo . Hacen algo muy parecido a lo que has descrito.

2 votos

Esto ya existe en el paquete party y en algunos otros paquetes (lenguaje R).

17voto

Tom Dietterich Puntos 131

Se han desarrollado y publicado árboles de decisión de resultados múltiples (y, por tanto, bosques aleatorios). Pierre Guertz distribuye un paquete para ello ( descargar ). Véase también Segal & Xiao, Multivariate random forests, WIREs Data Mining Knowl Discov 2011 1 80-87, DOI: 10.1002/widm.12 Creo que la última versión de Scikit-learn también lo soporta. Una buena revisión del estado del arte se puede encontrar en la tesis de Henrik Linusson titulada "MULTI-OUTPUT RANDOM FORESTS". El método más sencillo para realizar las elecciones de división en cada nodo es elegir aleatoriamente UNA de las variables de salida y luego seguir el enfoque habitual de los bosques aleatorios para elegir una división. Se han desarrollado otros métodos basados en una suma ponderada de la puntuación de información mutua con respecto a cada característica de entrada y variable de salida, pero son bastante caros en comparación con el enfoque aleatorio.

3voto

Vince Puntos 307

Como se ha dicho aquí :

Todos los clasificadores de scikit-learn realizan la clasificación multiclase de forma inmediata.

Y eso incluye a Random Forest.

También la página: http://scikit-learn.org/stable/modules/tree.html#tree-multioutput tiene muchas referencias sobre ese tema.

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