En los estudios de psicología aprendí que deberíamos usar el método de Bonferroni para ajustar el nivel de significancia al probar varias hipótesis en un solo conjunto de datos.
Actualmente estoy trabajando con métodos de aprendizaje automático como Support Vector Machines o Random Forest para la clasificación. Aquí tengo un único conjunto de datos que se utiliza en la validación cruzada para encontrar los mejores parámetros (como los parámetros del kernel para SVM) que brindan la mejor precisión.
Mi intuición dice (y tal vez está completamente apagada) que es un problema similar. Si estoy probando demasiadas combinaciones posibles de parámetros, es muy probable que encuentre una que produzca excelentes resultados. Sin embargo, esto podría ser solo una casualidad.
Para resumir mi pregunta:
En el aprendizaje automático utilizamos la validación cruzada para encontrar los parámetros correctos de un clasificador. Cuantas más combinaciones de parámetros usemos, mayor será la posibilidad de encontrar una excelente por accidente (¿sobreajuste?). ¿El concepto que está detrás de la corrección de bonferroni también se aplica aquí? ¿Es un problema diferente? Si es así, ¿por qué?
fuente
Respuestas:
Hay un grado en el que está relacionado lo que está hablando con la corrección del valor p, pero hay algunos detalles que hacen que los dos casos sean muy diferentes. El principal es que en la selección de parámetros no hay independencia en los parámetros que está evaluando o en los datos en los que los está evaluando. Para facilitar la discusión, tomaré la elección de k en un modelo de regresión K-Nearest-Neighbours como ejemplo, pero el concepto también se generaliza a otros modelos.
Digamos que tenemos una instancia de validación V que estamos prediciendo para obtener una precisión del modelo para varios valores de k en nuestra muestra. Para hacer esto, encontramos los valores k = 1, ..., n más cercanos en el conjunto de entrenamiento que definiremos como T 1 , ..., T n . Para nuestro primer valor de k = 1 nuestra predicción P1 1 será igual a T 1 , para k = 2 , la predicción P 2 será (T 1 + T 2 ) / 2 o P 1 /2 + T 2 /2 , parak = 3 será (T 1 + T 2 + T 3 ) / 3 o P 2 * 2/3 + T 3 /3 . De hecho, para cualquier valor k podemos definir la predicción P k = P k-1 (k-1) / k + T k / k . Vemos que las predicciones no son independientes entre sí, por lo tanto, la precisión de las predicciones tampoco lo será. De hecho, vemos que el valor de la predicción se acerca a la media de la muestra. Como resultado, en la mayoría de los casos, los valores de prueba de k = 1:20 seleccionarán el mismo valor de k que la prueba de k = 1: 10,000 a menos que el mejor ajuste que pueda obtener de su modelo sea solo la media de los datos.
Es por eso que está bien probar un montón de parámetros diferentes en sus datos sin preocuparse demasiado por las pruebas de hipótesis múltiples. Dado que el impacto de los parámetros en la predicción no es aleatorio, es mucho menos probable que la precisión de su predicción se ajuste correctamente debido al azar. Aún debe preocuparse por el ajuste excesivo, pero ese es un problema separado de las pruebas de hipótesis múltiples.
Para aclarar la diferencia entre la prueba de hipótesis múltiples y el ajuste excesivo, esta vez imaginaremos hacer un modelo lineal. Si repetidamente volvemos a muestrear datos para hacer nuestro modelo lineal (las líneas múltiples a continuación) y lo evaluamos, al probar datos (los puntos oscuros), por casualidad, una de las líneas será un buen modelo (la línea roja). Esto no se debe a que sea realmente un gran modelo, sino a que si muestreas los datos lo suficiente, algún subconjunto funcionará. Lo importante a tener en cuenta aquí es que la precisión se ve bien en los datos de prueba extendidos debido a todos los modelos probados. De hecho, dado que estamos eligiendo el "mejor" modelo basado en los datos de prueba, el modelo puede ajustarse mejor a los datos de prueba que a los datos de entrenamiento.
Por otro lado, el ajuste excesivo es cuando construye un solo modelo, pero contorsiona los parámetros para permitir que el modelo se ajuste a los datos de entrenamiento más allá de lo que es generalizable. En el siguiente ejemplo, el modelo (línea) se ajusta perfectamente a los datos de entrenamiento (círculos vacíos) pero cuando se evalúa en los datos de prueba (círculos rellenos) el ajuste es mucho peor.
fuente
Estoy de acuerdo con Barker en cierta medida, sin embargo, la selección del modelo no es solo kNN . Debe usar un esquema de validación cruzada, con un conjunto de validación y prueba. Utiliza el conjunto de validación para la selección del modelo y el conjunto de prueba para la estimación final del error del modelo. Podría estar anidado k-fold CV o simple división de los datos de entrenamiento. El rendimiento medido por el conjunto de validación del modelo con mejor rendimiento estará sesgado, ya que seleccionó el modelo con mejor rendimiento. El rendimiento medido del conjunto de prueba no está sesgado, ya que honestamente solo probó un modelo. En caso de duda, envuelva todo el procesamiento y modelado de datos en una validación cruzada externa para obtener la estimación menos sesgada de la precisión futura.
Como sé, no hay una corrección matemática simple confiable que se adapte a cualquier selección entre múltiples modelos no lineales. Tendemos a confiar en el arranque de fuerza bruta para simular, cuál sería la precisión del modelo futuro. Por cierto, al estimar el error de predicción futura, asumimos que el conjunto de entrenamiento se muestreó aleatoriamente de una población, y que las predicciones de pruebas futuras se muestrean de la misma población. Si no, bueno, quién sabe ...
Si, por ejemplo, usa un CV interno de 5 veces para seleccionar el modelo y un CV externo de 10 veces repetido 10 veces para estimar el error, entonces es poco probable que se engañe con una estimación de precisión del modelo demasiado confiada.
fuente