¿Random Forest se sobreajusta?


24

He estado leyendo sobre los bosques aleatorios, pero realmente no puedo encontrar una respuesta definitiva sobre el problema del sobreajuste. Según el documento original de Breiman, no deberían sobreajustarse al aumentar el número de árboles en el bosque, pero parece que no hay consenso sobre esto. Esto me está creando bastante confusión sobre el tema.

Quizás alguien más experto que yo pueda darme una respuesta más concreta o señalarme en la dirección correcta para comprender mejor el problema.


3
Todos los algoritmos se sobreajustarán hasta cierto punto. No se trata de elegir algo que no se sobreajuste, se trata de considerar cuidadosamente la cantidad de sobreajuste y la forma del problema que está resolviendo para maximizar las métricas más relevantes.
indico

1
ISTR que Breiman tenía una prueba basada en la Ley de Grandes Números. ¿Alguien ha descubierto una falla en esa prueba?
JenSCDC

Respuestas:


22

Cada algoritmo de ML con alta complejidad puede sobreajustar. Sin embargo, el OP pregunta si un RF no se sobreajustará al aumentar el número de árboles en el bosque.

En general, los métodos de conjunto reducen la variación de predicción a casi nada, mejorando la precisión del conjunto. Si definimos la varianza del error de generalización esperado de un modelo aleatorio individual como:

A partir de aquí , la varianza del error de generalización esperado de un conjunto corresponde a:

donde p(x)está el coeficiente de correlación de Pearson entre las predicciones de dos modelos aleatorizados entrenados en los mismos datos de dos semillas independientes. Si aumentamos el número de DT en la RF, mayor M, la varianza del conjunto disminuye cuando ρ(x)<1. Por lo tanto, la varianza de un conjunto es estrictamente menor que la varianza de un modelo individual.

En pocas palabras, aumentar el número de modelos aleatorios individuales en un conjunto nunca aumentará el error de generalización.


1
Eso es definitivamente lo que dice Leo Breiman y la teoría, pero empíricamente parece que definitivamente se sobreajustan. Por ejemplo, actualmente tengo un modelo con CV MSE de 10 veces de 0.02, pero cuando se compara con la verdad del terreno, el CV MSE es .4. OTOH si reduzco la profundidad y el número de árboles, el rendimiento del modelo mejora significativamente.
Hack-R

44
Si reduce la profundidad del árbol es un caso diferente porque está agregando regularización, lo que disminuirá el sobreajuste. Intente trazar el MSE cuando aumente el número de árboles mientras mantiene el resto de los parámetros sin cambios. Entonces, tienes MSE en el eje y y num_tress en el eje x. Verá que al agregar más árboles, el error disminuye rápidamente y luego tiene una meseta; Pero nunca aumentará.
tashuhka

9

Es posible que desee verificar la validación cruzada , un sitio web de intercambio de stachex para muchas cosas, incluido el aprendizaje automático.

En particular, esta pregunta (con exactamente el mismo título) ya ha sido respondida varias veces. Consulte estos enlaces: /stats//search?q=random+forest+overfit

Pero puedo darle la respuesta breve: sí, se sobreajusta, y a veces necesita controlar la complejidad de los árboles en su bosque, o incluso podarlos cuando crecen demasiado, pero esto depende de la biblioteca que use para construyendo el bosque. Por ejemplo, en randomForestR solo puedes controlar la complejidad


3
  1. El bosque aleatorio se sobreajusta.
  2. El bosque aleatorio no aumenta el error de generalización cuando se agregan más árboles al modelo. La varianza de generalización va a cero con más árboles utilizados.

He hecho un experimento muy simple. He generado los datos sintéticos:

y = 10 * x + noise

He entrenado dos modelos de Random Forest:

  • uno con árboles llenos
  • uno con árboles podados

El modelo con árboles llenos tiene un error de tren inferior pero un error de prueba mayor que el modelo con árboles podados. Las respuestas de ambos modelos:

respuestas

Es una clara evidencia de sobreajuste. Luego tomé los hiperparámetros del modelo sobreajustado y verifiqué el error al agregar en cada árbol del paso 1. Tengo la siguiente trama:

árboles en crecimiento

Como puede ver, el error de sobreajuste no cambia al agregar más árboles, pero el modelo está sobreajustado. Aquí está el enlace para el experimento que hice.


1

BASE DE DATOS ESTRUCTURADA -> ERRORES OOB ENGAÑOSOS

He encontrado casos interesantes de sobreajuste de RF en mi práctica laboral. Cuando los datos están estructurados, los sobreajustes de RF en observaciones OOB.

Detalle:

Intento predecir los precios de la electricidad en el mercado spot de electricidad para cada hora (cada fila del conjunto de datos contiene parámetros de precio y sistema (carga, capacidades, etc.) para esa hora).
Los precios de la electricidad se crean en lotes (24 precios creados en el mercado de la electricidad en una sola fijación en un momento).
Entonces, los OOB obs para cada árbol son subconjuntos aleatorios de un conjunto de horas, pero si predices las próximas 24 horas, lo haces todo de una vez (en el primer momento obtienes todos los parámetros del sistema, luego predices 24 precios, entonces hay una fijación que produce esos precios), por lo que es más fácil hacer predicciones OOB, que para todo el día siguiente. Los OOB obs no están contenidos en bloques de 24 horas, sino que se dispersan de manera uniforme, ya que existe una autocorrelación de errores de predicción, es más fácil predecir el precio de una sola hora que falta para todo el bloque de horas perdidas.

más fácil de predecir en caso de autocorrelación de error:
conocido, conocido, predicción, conocido, predicción - caso OBB
más difícil:
conocido, conocido, conocido, predicción, predicción - caso de predicción del mundo real

Espero que sea interesante

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.