Estoy usando libsvm en modo C-SVC con un núcleo polinomial de grado 2 y estoy obligado a entrenar múltiples SVM. Cada conjunto de entrenamiento tiene 10 características y 5000 vectores. Durante el entrenamiento, recibo esta advertencia para la mayoría de los SVM que entreno:
WARNING: reaching max number of iterations
optimization finished, #iter = 10000000
¿Podría alguien explicar qué implica esta advertencia y, tal vez, cómo evitarla?
También quiero aplicar la validación cruzada para mis modelos para determinar las mejores opciones para gamma y C (regularización). Mi plan es probar todas las combinaciones de estos 10 valores: 0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000 para ambos parámetros y ver qué combinación produce la mejor precisión durante la validación cruzada. ¿Es suficiente? ¿Debería usar más valores en este intervalo, o debería elegir un intervalo más amplio?
fuente
Respuestas:
Esta advertencia significa que la rutina iterativa utilizada por LIBSVM para resolver el problema de optimización cuadrática para encontrar el hiperplano de margen máximo (es decir, los parámetros y bw si w w
Hay muchas razones por las que esto puede suceder, le sugiero que haga lo siguiente:
Es una buena idea buscar C óptimado do
Tenga en cuenta que LIBSVM distributivo para Windows debe contener un script de Python llamado grid.py, que puede hacer la selección de parámetros por usted (según la validación cruzada y los rangos de búsqueda especificados). También puede producir gráficos de contorno para la precisión de SVM. Esta herramienta puede ser bastante útil.
La siguiente pregunta sobre StackOverflow y sus preguntas relacionadas también podría ser útil: libsvm Shrinking Heuristics
fuente