Respostas:
A pesquisa em grade é lenta, pois gasta muito tempo investigando configurações de hiperparâmetros que não estão nem perto do ideal. Uma solução melhor é o algoritmo simplex Nelder-Mead , que não requer cálculo de informações de gradiente e é simples de implementar (deve haver informações suficientes na página da Wikipedia). Também pode haver algum código java na caixa de ferramentas Weka , no entanto, trabalho no MATLAB e não olhei para o Weka com nenhum detalhe.
O SMO é um algoritmo para encontrar os parâmetros do modelo, em vez dos hiperparâmetros.
O método simplex Nelder-Mead pode envolver tantas avaliações de funções quanto uma simples pesquisa em grade. Geralmente, a superfície do erro é suave o suficiente perto dos valores ótimos dos parâmetros que uma pesquisa de grade grossa seguida por uma mais fina em uma região menor deve ser suficiente.
Se você estiver interessado na otimização baseada em gradiente de C e gama, existem métodos como otimizar os limites da margem do raio ou otimizar a taxa de erro em um conjunto de validação. O cálculo do gradiente da função objetivo envolve algo como um trem SVM, mas uma descida simples do gradiente pode envolver apenas algumas dezenas de iterações. (Consulte http://olivier.chapelle.cc/ams/ para obter um artigo e uma implementação do Matlab.)
Aqui está uma entrada no blog de Alex Smola relacionada à sua pergunta
Aqui está uma citação:
[...] escolha, digamos 1000 pares (x, x ') aleatoriamente do seu conjunto de dados, calcule a distância de todos esses pares e calcule a mediana, o quantil 0,1 e o 0,9. Agora escolha λ para ser o inverso de qualquer um desses três números. Com um pouco de validação cruzada, você descobrirá qual dos três é o melhor. Na maioria dos casos, você não precisará pesquisar mais.