Normalización previa a la validación cruzada

16

¿La normalización de datos (para tener una media de desviación estándar de unidad y cero) antes de realizar una validación cruzada repetida de k veces tiene alguna consecuencia negativa como el sobreajuste?

Nota: esto es para una situación donde #cases> total #características

Estoy transformando algunos de mis datos usando una transformación de registro, luego normalizo todos los datos como se indica arriba. Luego estoy realizando la selección de funciones. A continuación, aplico las características seleccionadas y los datos normalizados a una validación cruzada repetida de 10 veces para intentar estimar el rendimiento del clasificador generalizado y me preocupa que usar todos los datos para normalizar pueda no ser apropiado. ¿Debo normalizar los datos de prueba para cada pliegue utilizando los datos de normalización obtenidos de los datos de entrenamiento para ese pliegue?

Cualquier opinión recibida con gratitud! Disculpas si esta pregunta parece obvia.

Editar: Al probar esto (en línea con las sugerencias a continuación), descubrí que la normalización antes del CV no hizo mucha diferencia en cuanto al rendimiento en comparación con la normalización dentro del CV.

BGreene
fuente

Respuestas:

13

Para responder a su pregunta principal, sería óptimo y más apropiado escalar dentro del CV. Pero probablemente no importará mucho y podría no ser importante en la práctica si su clasificador reescala los datos, lo cual es más importante (al menos en R).

Sin embargo, seleccionar la función antes de la validación cruzada es un GRAN NO y dará lugar a un sobreajuste, ya que los seleccionará en función de cómo se desempeñen en todo el conjunto de datos. La transformación logarítmica está bien para realizarla fuera, ya que la transformación no depende de los datos reales (más sobre el tipo de datos) y no es algo que no haría si tuviera solo el 90% de los datos en lugar del 100% y no se modifica de acuerdo con los datos.

Para responder también a su comentario, obviamente, si resultará en un sobreajuste dependerá de su forma de selección de características. Si los elige por casualidad (¿por qué haría eso?) O debido a consideraciones teóricas a priori (otra literatura) no importará. Pero si depende de su conjunto de datos, lo hará. Elementos de los aprendizajes estadísticos tiene una buena explicación. Puede descargar de forma libre y legal un .pdf aquí http://www-stat.stanford.edu/~tibs/ElemStatLearn/

El punto que le concierne está en la sección 7.10.2 en la página 245 de la quinta impresión. Se titula "Las formas incorrectas y correctas de hacer la validación cruzada".

Erik
fuente
Gracias, seguramente si los únicos resultados informados son para el rendimiento estimado obtenido usando el modelo (características) seleccionado en cada pliegue, ¿esto no puede resultar en un sobreajuste? Después de todo, solo está informando el rendimiento generalizado de un subconjunto de características dado.
BGreene
Amplié mi respuesta para abordar su comentario. Creo que la explicación en el enlace es mejor que lo que puedo preparar en este momento.
Erik
Gracias. Esto sugiere que la selección de características basada en filtros estándar nunca se debe usar y que en su lugar se debe usar una selección de características basada en envoltura o equivalente. ¿Esto sigue siendo válido para la situación donde #Cases> #Features? (Tengo 259 casos, un total de 56 características). Supongo que el potencial de error es menor aquí?
BGreene
4

La validación cruzada se ve mejor como un método para estimar el rendimiento de un procedimiento estadístico, en lugar de un modelo estadístico. Por lo tanto, para obtener una estimación de rendimiento imparcial, debe repetir cada elemento de ese procedimiento por separado en cada pliegue de la validación cruzada, lo que incluiría la normalización. Entonces diría normalizar en cada pliegue.

El único momento en que esto no sería necesario es si el procedimiento estadístico fuera completamente insensible a la escala y al valor medio de los datos.

Dikran Marsupial
fuente
Creo que esta es una buena respuesta, aunque no es rigurosa, deja claro. Creo que el significado es que si se normaliza en cada pliegue, se garantiza que la normalización no sesga el rendimiento. La forma en que fue escrita parecía que no había otra forma de evitar el sesgo, aunque Dikran señaló en la última línea que hay otras formas. Si realiza la normalización dentro de CV, nunca aumenta el sesgo, en lugar de hacerlo fuera, lo que puede suceder. El sesgo puede no afectar mucho de todos modos, como se señaló en la otra respuesta.
Tom Anderson el
1

Creo que si la normalización solo involucra dos parámetros y tiene una muestra de buen tamaño, eso no será un problema. Me preocuparía más la transformación y el proceso de selección de variables. La validación cruzada 10 veces parece estar de moda hoy en día. ¿Nadie usa bootstrap 632 o 632+ para la estimación de la tasa de error del clasificador como lo sugirió primero Efron (1983) en JASA y luego siguió en un artículo de Efron y Tibshirani con el 632+?

Michael R. Chernick
fuente
0

Personalmente me gusta el método .632. Lo cual es básicamente un boostrapping con reemplazo. Si hace eso y elimina los duplicados, obtendrá 632 entradas de un conjunto de entrada de 1000. Un poco ordenado.

MannyK
fuente
mi0 0