¿Cuándo evitar el bosque aleatorio?


25

Los bosques aleatorios son bien conocidos por desempeñarse bastante bien en una variedad de tareas y se les conoce como los expertos en métodos de aprendizaje . ¿Hay algún tipo de problemas o condiciones específicas en las que se debe evitar el uso de un bosque aleatorio?


8
Hola. "PLS es el hombre de cuero de ...", "Bootstrap es el hombre de cuero de ...", "El bosque aleatorio es el hombre de cuero de ..." <- Te aconsejo que sospeches de tales afirmaciones. Fue solo un comentario :)
Stéphane Laurent

Respuestas:


24

Pensando en el lenguaje específico de la cita, un hombre de cuero es una herramienta múltiple: una sola pieza de hardware con muchos pequeños artilugios metidos en ella. ¡Es un alicate, un cuchillo, un destornillador y más! En lugar de tener que llevar cada una de estas herramientas individualmente, el hombre de cuero es un artículo único que puede sujetar a sus pantalones para que siempre esté a mano. Esto es conveniente , pero la compensación es que cada una de las herramientas componentes no es la mejor en su trabajo. El abrelatas es difícil de usar, las puntas de los destornilladores generalmente son del tamaño incorrecto y el cuchillo puede lograr poco más que cortar. Si realizar alguna de estas tareas es crítico, será mejor que lo haga con una herramienta especializada: un cuchillo real, un destornillador real o un alicate real.

Se puede pensar en un bosque aleatorio en los mismos términos. El bosque aleatorio produce resultados sólidos en una variedad de conjuntos de datos y no es increíblemente sensible a los parámetros de ajuste. Pero no es perfecto. Cuanto más sepa sobre el problema, más fácil será crear modelos especializados para acomodar su problema particular.

Hay un par de casos obvios en los que los bosques aleatorios lucharán:

  • Escasez : cuando los datos son muy escasos, es muy posible que para algún nodo, la muestra de arranque y el subconjunto aleatorio de características colaboren para producir un espacio de características invariable. No hay una división productiva, por lo que es poco probable que los hijos de este nodo sean de alguna ayuda. XGBoost puede hacerlo mejor en este contexto.

  • Los datos no están alineados con los ejes : suponga que hay un límite de decisión diagonal en el espacio de dos , y . Incluso si esta es la única dimensión relevante para sus datos, tomará un modelo de bosque aleatorio ordinario muchas divisiones para describir ese límite diagonal. Esto se debe a que cada división está orientada perpendicular al eje de o . (Esto debería ser intuitivo porque un modelo de bosque aleatorio ordinario está haciendo divisiones de la formaX1X2X1X2X1>4 4.) El bosque de rotación, que realiza una proyección PCA en el subconjunto de características seleccionadas para cada división, puede usarse para superar esto: las proyecciones en una base ortogonal, en principio, reducirán la influencia de la propiedad alineada a los ejes porque las divisiones ya no estará alineado a los ejes en la base original.

    Esta imagen proporciona otro ejemplo de cómo las divisiones alineadas por eje influyen en decisiones forestales aleatorias. El límite de decisión es un círculo en el origen, pero tenga en cuenta que este modelo de bosque aleatorio en particular dibuja un cuadro para aproximar el círculo. Hay varias cosas que uno podría hacer para mejorar este límite; la más simple incluye reunir más datos y construir más árboles. ingrese la descripción de la imagen aquí

  • Los bosques aleatorios básicamente solo funcionan en datos tabulares,es decir, no existe una relación fuerte y cualitativamente importante entre las características en el sentido de que los datos son una imagen, o que las observaciones están interconectadas en un gráfico. Estas estructuras generalmente no están bien aproximadas por muchas particiones rectangulares. Si sus datos viven en una serie de tiempo, o son una serie de imágenes, o viven en un gráfico, o tienen alguna otra estructura obvia, el bosque aleatorio tendrá dificultades para reconocerlo. No tengo dudas de que los investigadores han desarrollado variaciones en el método para intentar acomodar estas situaciones, pero un bosque aleatorio de vainilla no necesariamente detectará estas estructuras de una manera útil. La buena noticia es que normalmente sabe cuándo es este el caso, es decir, sabe que tiene imágenes, una serie temporal o un gráfico para trabajar,

Creo que los bosques aleatorios de vainilla tienen el potencial de reconocer particiones no rectangulares. Podemos tener características cuadráticas, por ejemplo, y reconocer límites como x ^ 2 <c.
Aniruddha Acharya

2
@AniruddhaAcharya Dije "lucha", no fallar. Mi respuesta aquí deja en claro que las características cuadráticas no son un problema insuperable. Pero las diagonales o cuadráticas u otros tipos de divisiones no alineadas requerirán que los árboles se dividan en esas características una y otra vez de forma rectangular para aproximarse a una diagonal / curva. Puedes ver ese efecto en el gráfico de esta publicación: mira las esquinas afiladas. RF está usando un cuadrado para aproximar un círculo.
Sycorax dice Reinstate Monica

Quise decir que alimentar las funciones cuadráticas (y otras de orden superior) a RF reduciría la dificultad de modelar particiones no rectangulares. Por ejemplo, los RF pueden usar 2 cuadráticos para aproximar el círculo en lugar de usar un cuadrado. Aunque estoy de acuerdo en que no es tan fácil como los modelos que incorporan la interacción entre variables, creo que no es tan difícil porque los RF no están restringidos al uso de umbrales en las características sin formato.
Aniruddha Acharya

1
@AniruddhaAcharya Si sabe que los términos cuadrados son el modelo correcto, no necesita bosque aleatorio: simplemente agregue términos cuadrados a un modelo lineal. RF es una buena manera de aproximar funciones arbitrarias, especialmente cuando tienen funciones de decisión alineadas con ejes.
Sycorax dice Reinstate Monica

¿Por qué la ingeniería de características (términos cuadráticos) sugerida por @AniruddhaAcharya no es un paso útil para usar junto con los RF? Sí, esas características podrían agregarse a un modelo lineal: pero este último no proporciona el comportamiento de combinar las contribuciones de muchos resultados que se optimizan individualmente para diferentes subconjuntos de las características.
javadba

22

Esquinas filosas. Exactitud.

Usan métodos de difusión. Se ajustan bien a los bultos. No se ajustan bien a las cosas elaboradas y altamente detalladas cuando el tamaño de la muestra es bajo. Me imagino que no les va bien en datos de series temporales multivariadas, cuando algo aquí depende de esa cosa allá a la distancia.

Los bosques impulsados ​​por gradientes pueden encajar o sobre ajustarse, pero pueden obtener un error sustancialmente menor para los mismos datos.

" Leathermen " no existen. No hay "balas de plata". Hay cajas de herramientas. Conozca sus herramientas y cuídelas bien para que puedan cuidar de usted. Tenga cuidado con "cuando es un martillo, entonces cada problema parece un clavo", especialmente cuando no tiene una biblioteca densa en su caja de herramientas.

Hasta que conozca bien el problema, es fácil imaginar que algo podría resolverlo, o su herramienta favorita podría resolverlo. La sabiduría sugiere profundizar en la comprensión del problema y estar muy familiarizado con sus herramientas.

Agregado: si tiene suficientes recursos informáticos o margen de tiempo para usar otra cosa. El RF no solo es rápido para entrenar, sino también rápido para ejecutar. Una estructura reforzada muy profunda es menos de eso. Tienes que tener los gastos generales para soportar eso.


2
Para ser el abogado del diablo aquí: Nada voluntad "ajuste cosas elaboradas y altamente detalladas bien cuando el tamaño de la muestra es baja "
usεr11852 dice Restablecer Monic

5

Esta es la primera vez que realmente respondo una pregunta, así que no me pongas en ello ... pero creo que puedo responder a tu pregunta:

Si de hecho solo está interesado en el rendimiento del modelo y no en algo como la interpretación, los bosques aleatorios son a menudo un algoritmo de aprendizaje muy bueno, pero funcionan ligeramente peor en los siguientes casos:

1.) Cuando la dimensionalidad (número de características) es muy alta con respecto al número de muestras de entrenamiento, en esos casos sería mejor una regresión lineal regularizada o SVM.

2.) En el caso, hay representaciones de orden superior / estructuras convolucionales en los datos, como por ejemplo en problemas de visión por computadora. En esos casos de visión por computadora, una red neuronal convolucional superará a un bosque aleatorio (en general, si hay conocimiento, uno puede incorporarlo al aprendizaje que es algo mejor).

Dicho esto, el bosque aleatorio es un muy buen punto de partida. Una de las personas que admiro por sus habilidades de Machine Learning siempre comienza con el aprendizaje de un bosque aleatorio y un regresor lineal regularizado.

Sin embargo, si quieres el mejor rendimiento posible, creo que hoy en día las redes neuronales también se conocen. Deep Learning parece un enfoque muy atractivo. Cada vez más ganadores en sitios web de desafío de datos como Kaggle utilizan modelos de Deep Learning para la competencia. Otro profesional de las redes neuronales es que pueden manejar un gran número de muestras (> 10 ^ 6 se puede entrenar usando el descenso de gradiente estocástico, alimentando bits de datos a la vez). Personalmente, me parece un profesional muy atractivo para el aprendizaje profundo.


2
Buena respuesta, pero su último punto no es correcto: la capacitación en mini lotes puede implementarse para todos los algoritmos comunes de aprendizaje automático, consulte, por ejemplo, h2o .
jubo

Oke, interesante, no lo sabía. ¿Está diciendo que usando estos métodos uno puede entrenar un árbol (de decisión) usando el aprendizaje mini-lote / SGD y así construir un solo árbol basado en una división mayoritaria de los datos totales de capacitación (digamos 65%)?
MJW

1
Creo que el bosque aleatorio aún debería ser bueno cuando la cantidad de características es alta: simplemente no use muchas características a la vez al construir un solo árbol, y al final tendrá un bosque de clasificadores independientes que colectivamente deberían ( con suerte) hacerlo bien.
Alexey Grigorev

Por lo que yo entiendo, H2O utiliza el paradigma de reducción de mapas para el entrenamiento de minibatch. Los árboles individuales (CART) no se implementan como tales en H2O (pero supongo que un árbol sin podar es un caso especial de bosque aleatorio con un solo árbol y la máxima elección de predictores).
jubo

2
¿Cuál es la justificación para (1)? Usted hace un reclamo, pero no proporciona ningún argumento de apoyo.
Sycorax dice Reinstate Monica

0

En primer lugar, el bosque aleatorio no se puede aplicar a los siguientes tipos de datos:

  • imágenes
  • audio
  • texto (después del procesamiento previo, los datos serán escasos y la RF no funciona bien con datos escasos)

Para el tipo de datos tabulares, siempre es bueno verificar Bosque aleatorio porque:

  • requiere menos preparación de datos y procesamiento previo que las redes neuronales o SVM. Por ejemplo, no necesita hacer escala de características.
  • Para el entrenamiento de Bosque aleatorio, puede usar los parámetros predeterminados y establecer la cantidad de árboles (cuantos más árboles en RF, mejor ). Cuando compara el bosque aleatorio con las redes neuronales , el entrenamiento es muy fácil (no es necesario definir la arquitectura ni ajustar el algoritmo de entrenamiento). Random Forest es más fácil de entrenar que Neural Networks.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.