Hay numerosos hilos en CrossValidated sobre el tema de la selección del modelo y de la validación cruzada. He aquí unas cuantas:
- Interno vs externo de validación cruzada y el modelo de selección
- @DikranMarsupial la respuesta a la selección de características y de validación cruzada
Sin embargo, las respuestas a esos temas son bastante genéricas y sobre todo poner de relieve los problemas con métodos específicos de validación cruzada y de selección de modelo.
Para hacer las cosas lo más concreto posible, digamos por ejemplo que estamos trabajando con un SVM con kernel RBF:
$K(x, x' ) = (\gamma \, \vert x - x'\vert)^2$, y eso que tengo un conjunto de datos de funciones de X y de las etiquetas y, y que quiero
- Encuentra los mejores valores posibles de mi modelo ( $\gamma$ $C$)
- Tren de la SVM con mi conjunto de datos (para la implementación final)
- Estimación de la generalización de error y la incertidumbre (varianza) en torno a este error
Para ello, me atrevo a hacer una cuadrícula de búsqueda, por ejemplo, yo intente todas las combinaciones posibles de $C$$\gamma$. Por simplicidad, asumimos los siguientes rangos:
- $C \in \{10, 100, 1000\}$
- $\gamma \in \{0.1, 0.2, 0.5, 1.0\}$
Más específicamente, el uso de mi completo conjunto de datos hago lo siguiente:
- Para cada ($C$,$\gamma$) par, hago repetidas iteraciones (por ejemplo, 100 repeticiones al azar) de $K$-fold cross validation (por ejemplo,$K=10$), en mi conjunto de datos, es decir, yo entreno a mi SVM en $K-1$ pliegues y evaluar el error en el pliegue de la izquierda, recorrer todos los $K$ pliegues. En general, puedo cobrar el 100 x 10 = 1000 prueba de errores.
- Para cada uno de dichos ($C$,$\gamma$) par, puedo calcular la media y la varianza de los 1000 prueba de errores $\mu_M, \sigma_M$.
Ahora quiero elegir el mejor modelo (el mejor de los parámetros del kernel) que iba a usar para entrenar a mi final SVM en la totalidad del conjunto de datos. Mi entendimiento es que la elección de la modelo que había el menor error de la media y la varianza $\mu_M$ $\sigma_M$ sería la elección correcta, y que este modelo es $\mu_M$ $\sigma_M$ son mis mejores estimaciones del modelo de la generalización de error de sesgo y la varianza en el entrenamiento con el conjunto de datos completo.
PERO, después de leer las respuestas en los hilos de arriba, yo tengo la impresión de que este método para elegir el mejor SVM para la implementación y/o para la estimación de su error (generalización de rendimiento), es errónea, y que hay mejores maneras de elegir la mejor SVM y los informes de su error. Si es así, ¿cuáles son? Estoy en busca de una respuesta concreta por favor.
Fiel a este problema, específicamente cómo puedo elegir el mejor modelo y estimar correctamente su generalización error?