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

17
  1. Los bosques aleatorios (RF) son un método competitivo de modelado / extracción 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 RF sería construir un RF para cada variable de salida. Entonces tenemos N modelos independientes, y donde hay correlación entre las variables de salida tendremos una estructura de modelo redundante / duplicada. Esto podría ser muy derrochador, de hecho. Además, como regla general, más variables del modelo implican un modelo más sobreajustado (menos generalización). No estoy seguro si esto se aplica aquí, pero probablemente sí.

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

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

Encontrar el punto de división óptimo cuando se trabaja con variables individuales es trivial y computacionalmente rápido / eficiente. Para una n-tupla, no podemos encontrar la división óptima (o al menos se vuelve computacionalmente inviable a medida que N aumenta), 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 local gradiente transversal).

¿Funcionaría esto realmente? Es decir, ¿solo mapearía los pares de entrenamiento sin generalizar? ¿Esta técnica ya existe con un nombre diferente?

Es posible que también desee considerar cómo se relaciona esto con las redes neuronales como las Máquinas de Boltzmann restringidas (RBM) y las Redes de creencias profundas.

Redcalx
fuente
Buscar en Google "bosque aleatorio multicabel" muestra que esto se ha hecho incluso de varias maneras distintas; de todos modos, he estado jugando con este enfoque de muchos binarios-rfs en la recuperación de información musical y me estaba yendo bastante bien.
1
Te sugeriría este artículo . Hacen algo muy parecido a lo que usted describió.
Dmitry Laptev
2
Esto ya existe en el paquete de fiesta y en algunos otros paquetes (lenguaje R).
Jase

Respuestas:

8

Se han desarrollado y publicado múltiples árboles de decisión de salida (y, por lo tanto, bosques aleatorios). Pierre Guertz distribuye un paquete para esto ( descargar) Consulte también Segal y Xiao, Bosques aleatorios multivariantes, WIRE Data Mining Knowl Discov 2011 1 80–87, DOI: 10.1002 / widm.12 Creo que la última versión de Scikit-learn también es compatible con esto. Se puede encontrar una buena revisión del estado del arte en la tesis de Henrik Linusson titulada "BOSQUES AL AZAR DE SALIDA MÚLTIPLE". El método más simple para hacer las elecciones divididas en cada nodo es elegir aleatoriamente UNA de las variables de salida y luego seguir el enfoque de bosque aleatorio habitual 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.

Tom Dietterich
fuente
-1

Como se indica aquí :

Todos los clasificadores en scikit-learn hacen una clasificación multiclase lista para usar.

Y eso incluye Random Forest.

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

0asa
fuente
8
Para ser claro; La pregunta se refiere a la regresión de múltiples salidas .
redcalx
Perdón por el retraso en mi respuesta, pero parece que scikit-learn también ofrece regresión de múltiples salidas, por ejemplo: scikit-learn.org/stable/auto_examples/tree/… Y, en cualquier caso, hay una estrategia que consiste en ajustar una regresor por objetivo. Esta es una estrategia simple para extender regresores que no admiten de forma nativa la regresión de múltiples objetivos: scikit-learn.org/stable/modules/generated/… HTH
0asa