O maravilhoso pacote libsvm fornece uma interface python e um arquivo "easy.py" que pesquisa automaticamente parâmetros de aprendizado (custo e gama) que maximizam a precisão do classificador. Dentro de um determinado conjunto de parâmetros de aprendizado do candidato, a precisão é operacionalizada pela validação cruzada, mas acho que isso prejudica o objetivo da validação cruzada. Ou seja, na medida em que os próprios parâmetros de aprendizado possam ser escolhidos de uma maneira que possa causar um excesso de ajuste dos dados, acho que uma abordagem mais apropriada seria aplicar a validação cruzada no nível da própria pesquisa: realize a pesquisa em um conjunto de dados de treinamento e avalie a precisão final do SVM resultante dos parâmetros de aprendizado finalmente escolhidos por avaliação em um conjunto de dados de teste separado. Ou estou faltando alguma coisa aqui?
fonte
Não acho que a validação cruzada seja mal utilizada no caso do LIBSVM porque é feita no nível dos dados de teste. Tudo o que faz é validação cruzada k-fold e procure o melhor parâmetro para o kernel RBF. Deixe-me saber que você não concorda.
fonte