20 votos

¿Qué medida de error de entrenamiento informar para Random Forests?

Actualmente estoy ajustando bosques aleatorios para un problema de clasificación utilizando la herramienta randomForest en R, y no estoy seguro de cómo informar error de formación para estos modelos.

Mi error de entrenamiento es cercano al 0% cuando lo calculo utilizando las predicciones que obtengo con el comando:

predict(model, data=X_train)

donde X_train son los datos de entrenamiento.

En respuesta a una pregunta relacionada He leído que se debe utilizar el fuera de bolsa (OOB) como métrica de error de entrenamiento para bosques aleatorios. Esta cantidad se calcula a partir de las predicciones obtenidas con el comando:

predict(model)

En este caso, el error de entrenamiento OOB está mucho más cerca del error medio de la prueba 10-CV, que es del 11%.

Me pregunto:

  1. ¿Está generalmente aceptado informar del error de entrenamiento OOB como medida del error de entrenamiento para los bosques aleatorios?

  2. ¿Es cierto que la medida tradicional del error de formación es artificialmente baja?

  3. Si la medida tradicional del error de entrenamiento es artificialmente baja, ¿qué dos medidas puedo comparar para comprobar si la RF está sobreajustándose?

14voto

ebryn Puntos 4037

Para añadir a la respuesta de @Soren H. Welling.

1. ¿Está generalmente aceptado informar del error de entrenamiento OOB como medida del error de entrenamiento para los bosques aleatorios?

No. El error OOB en el modelo entrenado no es lo mismo que el error de entrenamiento. Sin embargo, puede servir como medida de la precisión predictiva.

2. ¿Es cierto que la medida tradicional del error de formación es artificialmente baja?

Esto es cierto si estamos ejecutando un problema de clasificación utilizando la configuración por defecto. El proceso exacto se describe en mensaje en el foro de Andy Liaw que mantiene el randomForest en R, de la siguiente manera:

En su mayor parte, el rendimiento en el conjunto de entrenamiento no tiene sentido. (Es el caso para la mayoría de los algoritmos, pero especialmente para RF). Por defecto (y recomendada), los árboles crecen hasta el tamaño máximo, lo que significa que es muy probable que sólo haya un punto de datos en la mayoría de los nodos terminales. nodos terminales, y la predicción en los nodos terminales viene determinada por la clase mayoritaria en el nodo, o el único punto de datos. Supongamos que es el caso todo el tiempo; es decir, en todos los árboles todos los nodos terminales tienen tienen un único dato. Un punto de datos concreto estaría "en bolsa" en aproximadamente 64% de los árboles del bosque, y cada uno de esos árboles tiene el predicción correcta para ese punto de datos. Aunque todos los árboles en los que que los puntos de datos están fuera de la bolsa dieron la predicción equivocada, por mayoría de todos los árboles, al final se obtiene la respuesta correcta. Así básicamente la predicción perfecta en el conjunto de trenes para RF es "por diseño".

Para evitar este comportamiento, se puede establecer nodesize > 1 (para que los árboles no crezcan hasta su tamaño máximo) y/o establecer sampsize < 0.5N (para que menos del 50% de los árboles contengan probablemente un punto dado $(x_i,y_i)$ .

3. Si la medida tradicional del error de entrenamiento es artificialmente baja, ¿qué dos medidas puedo comparar para comprobar si la RF está sobreajustándose?

Si ejecutamos RF con nodesize = 1 y sampsize > 0.5 entonces el error de entrenamiento de la RF será siempre cercano a 0. En este caso, la única forma de saber si el modelo está sobreajustado es mantener algunos datos como un conjunto de validación independiente. Entonces podemos comparar el error de prueba 10-CV (o el error de prueba OOB) con el error en el conjunto de validación independiente. Si el error de la prueba 10-CV es mucho menor que el error en el conjunto de validación independiente, entonces el modelo puede estar sobreajustándose.

3voto

[editado 21.7.15 8:31 AM CEST]

Supongo que habrá utilizado RF para la clasificación. Porque en este caso, el algoritmo produce árboles completamente crecidos con nodos terminales puros de una sola clase objetivo.

predict(model, data=X_train)

Esta línea de codificación es como un perro persiguiéndose [~66% de] su propia cola. La predicción de cualquier muestra de entrenamiento es la clase de la propia muestra de entrenamiento. Para la regresión RF se detiene si el nodo tiene 5 o menos muestras en él o si el nodo es puro. En este caso, el error de predicción será pequeño, pero no del 0%.

En el aprendizaje automático trabajamos a menudo con grandes espacios de hipótesis. Esto significa que siempre habrá muchas hipótesis/explicaciones/modelos aún no falsados para la estructura de datos de nuestro conjunto de entrenamiento. En la estadística clásica, el espacio de hipótesis suele ser pequeño y, por lo tanto, el ajuste directo del modelo es informativo de acuerdo con una teoría de la probabilidad asumida. En el aprendizaje automático, ¿se relaciona la falta de ajuste directo con la teoría de la probabilidad? sesgo del modelo. El sesgo es la "inflexibilidad" del modelo. No tiene proporcionan en cualquier caso una aproximación del poder de generalización (la capacidad de predecir nuevos acontecimientos). Para los modelos algorítmicos, la validación cruzada es la mejor herramienta para aproximar el poder de generalización, ya que no se formula ninguna teoría. Sin embargo, si fallan los supuestos del modelo de muestreo independiente, el modelo puede ser inútil de todos modos, incluso cuando una validación cruzada bien realizada sugiera lo contrario. Al final, la prueba más sólida es predecir satisfactoriamente una serie de conjuntos de pruebas externas de origen diverso.

Volver a CV: El CV fuera de bolsa suele ser un tipo de CV aceptado. Personalmente, sostengo que OOB-CV proporciona resultados similares a 5-fold-CV, pero se trata de una molestia muy pequeña. Si comparamos, por ejemplo, RF con SVM, entonces OOB-CV no es útil, ya que normalmente evitaríamos utilizar SVM de bolsa. En su lugar, tanto SVM como RF se integrarían exactamente en el mismo esquema de validación cruzada, por ejemplo, 10 veces 10 repeticiones con particiones coincidentes para cada repetición. Cualquier paso de ingeniería de características también necesitaría a menudo una validación cruzada. Para mantener la limpieza, toda la línea de datos podría integrarse en el CV.

Si ajusta su modelo con su conjunto de pruebas (o validación cruzada), estará inflando de nuevo su espacio de hipótesis y el rendimiento de la predicción validada será probablemente demasiado optimista. En su lugar, necesitará un conjunto de calibración (o bucle CV de calibración) para ajustar y un conjunto de validación de prueba (o bucle CV de validación) para evaluar su modelo óptimo final.

En el sentido extremo, su puntuación de validación sólo será imparcial si nunca actúa sobre este resultado, cuando lo vea. Esta es la paradoja de la validación, ya que por qué íbamos a obtener un conocimiento que sólo es cierto si no se actúa en consecuencia. En la práctica, la comunidad acepta de buen grado cierto sesgo de publicación, ya que los investigadores que obtienen una validación demasiado optimista al azar tienen más probabilidades de publicar que aquellos que, por desgracia, obtienen una validación demasiado pesimista. Por eso, a veces no se pueden reproducir los modelos de otros.

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