Estou usando modelos SVM para fazer previsões de curto prazo de poluentes do ar. Para treinar um novo modelo, preciso encontrar metaparameters apropriados para um modelo SVM (refiro-me a C, gama e assim por diante).
A documentação do Libsvm (e muitos outros livros que li) sugere o uso da pesquisa em grade para encontrar esses parâmetros - então eu basicamente treino o modelo para cada combinação desses parâmetros em um determinado conjunto e escolho o melhor modelo.
Existe alguma maneira melhor de encontrar metaparameters ótimos (ou quase ótimos)? Para mim, é principalmente uma questão de tempo de computação - uma pesquisa em grade desse problema leva cerca de duas horas (depois de algumas otimizações).
Prós da pesquisa em grade:
- Pode ser facilmente paralelizado - se você tiver 20 CPUs, ele será executado 20 vezes mais rápido, paralelizar outros métodos é mais difícil.
- Você verifica grandes partes do espaço do metaparameter, portanto, se houver uma boa solução, você a encontrará.