El maravilloso paquete libsvm proporciona una interfaz python y un archivo "easy.py" que busca automáticamente los parámetros de aprendizaje (costo y gamma) que maximizan la precisión del clasificador. Dentro de un conjunto determinado de parámetros de aprendizaje, la precisión se operacionaliza mediante validación cruzada, pero creo que esto socava el propósito de la validación cruzada. Es decir, en la medida en que los parámetros de aprendizaje en sí pueden elegirse de una manera que pueda causar un sobreajuste de los datos, creo que un enfoque más apropiado sería aplicar la validación cruzada en el nivel de la búsqueda en sí: realizar la búsqueda en un conjunto de datos de entrenamiento y luego evalúe la precisión final de SVM resultante de los parámetros de aprendizaje finalmente elegidos mediante evaluación dentro de un conjunto de datos de prueba por separado. ¿O me estoy perdiendo algo aquí?
fuente
No creo que la validación cruzada se use incorrectamente en el caso de LIBSVM porque se realiza en el nivel de datos de prueba. Todo lo que hace es la validación cruzada k-fold y buscar el mejor parámetro para el kernel RBF. Hazme saber que no estás de acuerdo.
fuente