En Random Forest, cada árbol se cultiva en paralelo en una muestra boostrap única de los datos. Debido a que se espera que cada muestra de boostrap contenga aproximadamente el 63% de las observaciones únicas, esto deja aproximadamente el 37% de las observaciones, que se pueden usar para probar el árbol.
Ahora, parece que en Stochastic Gradient Boosting, también hay una similar a la de RF:
Si bag.fraction está configurado para ser mayor que 0 (se recomienda 0.5), gbm calcula una estimación fuera de bolsa de la mejora en el rendimiento predictivo. Evalúa la reducción de la desviación en aquellas observaciones que no se utilizan para seleccionar el siguiente árbol de regresión.
Fuente: Ridgeway (2007) , sección 3.3 (página 8).
Tengo problemas para entender cómo funciona / es válido. Digamos que estoy agregando un árbol en la secuencia. Estoy haciendo crecer este árbol en una submuestra aleatoria del conjunto de datos original. Podría probar este único árbol en las observaciones que no se utilizaron para cultivarlo. Convenido. PERO , dado que Boosting es secuencial, estoy usando la secuencia completa de árboles construidos hasta ahora para proporcionar una predicción para esas observaciones omitidas. Y, existe una alta probabilidad de que muchos de los árboles anteriores ya hayan visto estas observaciones. Entonces, el modelo no se está probando realmente en cada ronda en observaciones invisibles como con RF, ¿verdad?
Entonces, ¿cómo es que esto se llama estimación de error "fuera de bolsa"? Para mí, ¿no parece estar "fuera" de ninguna bolsa ya que las observaciones ya se han visto?
Respuestas:
Responde solo parcialmente (y agrega una nueva pregunta a su pregunta).
La implementación de gbm en R http://www.rdocumentation.org/packages/gbm/functions/gbm tiene dos parámetros para ajustar algunos de los que están fuera de la bolsa.
a)
train.fraction
definirá una proporción de los datos que se utilizan para entrenar a todos los árboles y, por lo tanto, 1-train.fraction
serán datos verdaderos OOB (fuera de bolsa).b)
bag.fraction
definirá la proporción de datos de entrenamiento que se utilizarán en la creación del próximo árbol en el impulso. Por lo tanto, puede haber algunos datos que nunca se usan para la creación de ningún árbol y se pueden usar realmente como datos OOB (pero es poco probable, consulte la pregunta a continuación)err.rate
confusion
No sé cómo responder eso (y le agradezco (+1) por hacer la pregunta y hacerme dar cuenta de que no entiendo este aspecto de los bosques al azar). La posible solución es que solo hay un arranque, y todos los árboles están construidos a partir de él, pero que yo sepa, ese no es el caso.
fuente
train.fraction
parámetro (que es solo una característica de la función gbm pero no está presente en el algoritmo original), sino realmente del hecho de que solo una submuestra del los datos se usan para entrenar cada árbol en la secuencia, dejando fuera las observaciones (que se pueden usar para las pruebas) Lo que se remonta a mi pregunta original. ¿Cómo pueden usarse estas observaciones para las pruebas, ya que probablemente hayan sido vistas muchas veces por muchos árboles anteriores en la secuencia?Creo que lo hacen fuera de bolsa en cada paso. Como se agregan los resultados de todos los pasos (con coeficientes), los errores OOB también se pueden agregar con los mismos coeficientes.
fuente