Respuestas:
La búsqueda en la cuadrícula es lenta, ya que pasa mucho tiempo investigando configuraciones de hiperparámetros que no son ni cerca óptimas. Una solución mejor es el algoritmo simplex de Nelder-Mead , que no requiere el cálculo de la información de gradiente y es fácil de implementar (debe haber suficiente información en la página de Wikipedia). También puede haber algún código java en la caja de herramientas de Weka , sin embargo, trabajo en MATLAB y no he mirado a Weka con gran detalle.
SMO es un algoritmo para encontrar los parámetros del modelo, en lugar de los hiperparámetros.
El método simplex de Nelder-Mead puede involucrar tantas evaluaciones de funciones como una simple búsqueda de cuadrícula. Por lo general, la superficie de error es lo suficientemente lisa cerca de los valores óptimos de los parámetros que una búsqueda de grilla gruesa seguida de una búsqueda más fina en una región más pequeña debería ser suficiente.
Si está interesado en la optimización basada en gradiente de C y gamma, existen métodos como optimizar los límites de margen de radio u optimizar la tasa de error en un conjunto de validación. El cálculo del gradiente de la función objetivo implica algo así como un tren SVM, pero un descenso de gradiente simple puede implicar solo unas pocas docenas de iteraciones. (Consulte http://olivier.chapelle.cc/ams/ para ver un artículo y una implementación de Matlab).
Aquí hay una entrada en el blog de Alex Smola relacionada con su pregunta
Aquí hay una cita:
[...] elija, digamos 1000 pares (x, x ') al azar de su conjunto de datos, calcule la distancia de todos esos pares y tome la mediana, el cuantil 0.1 y el 0.9. Ahora elija λ para ser el inverso de cualquiera de estos tres números. Con un poco de validación cruzada, descubrirá cuál de los tres es el mejor. En la mayoría de los casos, no necesitará buscar más.