Recientemente me dijeron que el proceso que seguí (componente de una Tesis de EM) podría verse como un ajuste excesivo. Estoy buscando obtener una mejor comprensión de esto y ver si otros están de acuerdo.
El objetivo de esta parte del documento es
Compare el rendimiento de los árboles de regresión potenciados por gradientes con los bosques aleatorios en un conjunto de datos.
Observe el rendimiento del modelo final elegido (ya sea GBM o RF).
Se están utilizando los paquetes gbm
y randomForest
en R, junto con
caret
.
El proceso seguido fue el siguiente:
- Preprocesamiento preliminar de los datos (p. Ej., Tapar los valores faltantes de los predictores nominales con una categoría distinta llamada "Falta"). La variable objetivo no se examinó con respecto a ningún preprocesamiento (que era muy mínimo).
- Cree una cuadrícula de valores para los metaparámetros de cada algoritmo (por ejemplo, número de iteraciones para GBM).
- Cree 25 divisiones aleatorias del conjunto de datos (65% de entrenamiento y 35% de prueba).
Repita 25 veces lo siguiente para GBM (cada vez que utiliza una de las divisiones aleatorias de entrenamiento / prueba. Cada vez, qué entrenamiento y conjunto de pruebas son "actuales", por supuesto, esto es una validación cruzada repetida de salir del grupo):
- Utilice la validación cruzada 5 veces para encontrar la configuración de parámetros "óptima" del algoritmo en la búsqueda de cuadrícula. Nada de las ejecuciones anteriores utilizado en absoluto en la ejecución actual.
- Una vez determinado, ajuste un modelo al conjunto de entrenamiento "actual" completo y prediga el conjunto de prueba "actual". Ponga a un lado la medida de rendimiento de esta ejecución.
Una vez que se obtienen 25 medidas de rendimiento (en realidad, una medida específica del dominio, pero piense en ello como precisión) de esta manera, siga exactamente el mismo proceso, utilizando las mismas muestras independientes de tren y prueba, para RF (mismo proceso, solo con diferentes cuadrícula de búsqueda, por supuesto).
Ahora, tengo 25 medidas de rendimiento de los conjuntos de prueba "actuales" para GBM y RF. Los comparo usando una prueba de rango firmado de Wilcoxon y también una prueba de permutación. Encontré que GBM es superior. También afirmé que la distribución de la medida de rendimiento de estas 25 ejecuciones para GBM es el rendimiento esperado del clasificador GBM final.
Lo que no hice fue extraer un conjunto de pruebas aleatorias desde el principio y dejarlo a un lado para compararlo con el modelo GBM final creado a partir de todos los datos de entrenamiento. Sostengo que lo que hice fue en realidad mucho mejor, ya que repetí la división de datos / modelo de sintonización / prueba en el proceso de espera 25 veces versus solo una vez.
¿Hay sobreajuste aquí? Dado que las 25 corridas se usaron para seleccionar GBM versus RF, ¿eso significa que las medidas de desempeño adquiridas del proceso no pueden usarse como estimación de desempeño para el modelo completo?
EDITAR En respuesta al comentario de Wayne, esto es lo que se hizo durante cada una de las 25 carreras:
- Los datos muestreados para el i-ésimo conjunto de entrenamiento (i = 1, ..., 25) se dividieron en 5 grupos de igual tamaño. Se ajustó un modelo utilizando 4 de los 5 grupos, estableciendo los parámetros GBM (por ejemplo, número de iteraciones) iguales a los valores en la cuadrícula jth (j = 1, .., 18).
- El rendimiento en el quinto grupo se calculó utilizando este modelo.
- Los pasos 1 y 2 se repitieron 4 veces más (CV k-fold antiguo normal con k = 5). El rendimiento se promedió a partir de las 5 sub-ejecuciones y esto constituyó el rendimiento esperado de GBM con ese cierto conjunto de valores de parámetros.
- Los pasos 1 a 3 se repitieron para las otras 17 "filas" en la cuadrícula.
Una vez completado, se determinaron los mejores valores de parámetros del ejercicio anterior y se ajustó un GBM utilizando estos valores de parámetros y el conjunto de entrenamiento completo. Su rendimiento se estimó en el i-ésimo conjunto de prueba.
Una vez que todo este proceso se realizó 25 veces, hubo 25 medidas de rendimiento disponibles para GBM. Luego se reunieron para RF exactamente de la misma manera.
Después de comparar y elegir GBM, miré esas 25 medidas de rendimiento y tomé la media y el error de tendencia para determinar un intervalo de confianza para un modelo GBM en estos datos.
Respuestas:
Imagínese en lugar de simplemente seleccionar GBM vs RF, en lugar de eso, estaba eligiendo entre 100 clasificadores GBM diferentes (suponiendo que el entrenamiento GBM usa algún tipo de aleatoriedad, y les asigna semillas aleatorias de 1 a 100). Luego elegiría uno de esos 100 GBM como el mejor GBM. Pero es casi seguro que uno de los 100 modelos que eligió tuvo la suerte de vencer a sus 99 hermanos, por lo que su estimación de rendimiento será optimista.
Solo usó dos alumnos, y no fueron entrenados por un algoritmo idéntico, por lo que su GBM único probablemente no tuvo mucha presión de selección (especialmente si superó drásticamente el RF), pero su estimación de error seguirá siendo un poco optimista
fuente
Parece que ha intentado mezclar dos técnicas, cada una de las cuales es legítima, pero la forma en que lo hizo parece que terminará con una fuga de datos entre los casos.
En el nivel inferior, parece que estás usando CV correctamente. Lo que sugeriría que el nivel superior también debería ser un CV, lo que da como resultado un CV anidado, pero su nivel superior no es CV.
En el nivel superior, parece que podría haber querido hacer una validación de arranque, en cuyo caso un doble arranque funcionaría para los niveles superior e inferior, pero su nivel superior no es un arranque adecuado.
Es posible que desee ver este artículo de stackexchange. y los artículos a los que se vincula, y quizás reestructurar su nivel superior para ser un CV. Además, tenga en cuenta que nada menos que Frank Harrell publica en ese hilo y sugiere que el CV se repita un montón de veces. (Me sorprendió pensar que una repetición debería hacerlo).
fuente