6 votos

¿Una fórmula matemática para el error de predicción de validación cruzada de K-fold?

¿Podría alguien elaborar una perspectiva teórica de la validación cruzada K-fold y especialmente una fórmula matemática para el error de predicción de K-fold CV?

Actualizado: ¿Podría alguno de ustedes ayudarme a entender la fórmula escrita en la última edición (Feb, 2011) del libro en la página 242. Introducir descripción de la imagen aquí

0 votos

Si solo quieres saber cómo hacerlo, ya ha sido respondido, por ejemplo aquí: stats.stackexchange.com/questions/1826/…

0 votos

@mbq: Sé cómo funciona, pero necesito la fórmula matemática para este error de predicción. He aplicado la regresión de Ángulo Mínimo (paquete R 'lars'). Así que estoy buscando la fórmula matemática para este procedimiento de validación cruzada para la función R (cv.lars) en el paquete 'lars'.

0 votos

Bueno, ahora estoy confundido -- ¿a qué te refieres con "fórmula matemática" en este caso?

7voto

John Richardson Puntos 1197

Hay fórmulas para calcular el error de validación cruzada leave-one-out en forma cerrada para muchos modelos, incluyendo la regresión de mínimos cuadrados, pero hasta donde yo sé no hay una fórmula general para la validación cruzada k-fold (o al menos puede ser posible pero la ventaja computacional es demasiado pequeña como para que valga la pena).

La fórmula en el libro no dice mucho, simplemente dice que el error de validación cruzada es el promedio de la función de pérdida (L) evaluada utilizando modelos entrenados en diferentes subconjuntos de los datos. El superíndice κ(i) simplemente significa "el modelo f se entrena sin los patrones de entrenamiento en la misma partición del conjunto de datos que el patrón i". A veces escribir las cosas en notación matemática formal hace que las cosas sean menos ambiguas, pero no necesariamente hace que sea más fácil de entender que el texto - creo que esta es una de esas ocasiones.

6voto

dan90266 Puntos 609

La razón por la que la gente hace validación cruzada es que no existe una fórmula matemática para obtener lo mismo de manera precisa, excepto bajo condiciones muy restrictivas. Y hay que tener en cuenta que la validación cruzada k-fold no tiene la precisión adecuada en la mayoría de los casos, por lo que hay que repetir la validación k-fold muchas veces (de 50 a 100 veces) y promediar la métrica de rendimiento para obtener estimaciones precisas y exactas del rendimiento del modelo. Ciertamente no hay una fórmula matemática para eso.

5voto

Janusz Puntos 76

La verdad es que la validación cruzada es simplemente una heurística para la selección de modelos. Si lo que realmente estás buscando es obtener una estimación respaldada teóricamente de tu predicción de generalización, la validación cruzada solo puede darte una buena estimación, pero no hay garantías. Un ajuste mejor para eso serían los marcos teóricos de aprendizaje como el entorno PAC-Bayes. Sin embargo, esos marcos tienen sus propias limitaciones, principalmente relacionadas con el hecho de que las restricciones tienden a ser demasiado generales (por ejemplo, una restricción que te dice que no vas a predecir mal más del 100% del tiempo).

Sin embargo, algunas personas han intentado formalizar la heurística de la validación cruzada. Puede que quieras echar un vistazo a las referencias en esta publicación de John Langford. http://hunch.net/?p=29

0 votos

De hecho, estoy buscando la fórmula matemática de este error de predicción. ¿Tienes experiencia en CV con la Regresión de Ángulo Mínimo? Eso está implementado en el paquete R 'lars'. ¿Cómo funciona CV con la selección de modelos, quiero decir, deberíamos siempre seleccionar tantos predictores como sea posible con el error de predicción mínimo?

0voto

Karthik Balaguru Puntos 845

Creo que lo que la persona que hacía la pregunta necesita es simplemente una fórmula más explicativa, o una explicación detallada de la fórmula. Estoy publicando esto por el bien de otros que buscan una respuesta.

Así es como lo entiendo.

  1. Empieza con una función de pérdida menos abstracta, digamos el MSE.

  2. Una vez que divides tu conjunto de datos en K subconjuntos, calculas el MSE donde el conjunto de prueba es uno de los subconjuntos k y la función f^(-k)(x_i) se calcula sobre el conjunto de entrenamiento formado por todos los puntos menos el subconjunto k. Obtienes

    MSE(k)=K/N*sum_{todos los puntos en el subconjunto k} (y_j - f^(-k)(x_i))^2.

Ten en cuenta que para obtener el promedio divides por N/K que es el número de puntos en el subconjunto k.

3. Ahora tomas el promedio sobre todos los K subconjuntos, y obtienes:

MSE = 1/K * sum_k MSE(k)

  1. K y K se simplifican y el MSE se convierte simplemente en

    MSE = 1/N * sum_{todos los puntos!} (y_j - f^(-k)(x_i))^2

Ten en cuenta que cada punto se cuenta exactamente una vez. Por eso en lugar de f^(-k) puedes escribir como Hastie et al. "f^(-k(i))".

La extensión a una función de pérdida genérica debería ser trivial.

Espero que esto aclare las cosas.

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