Existem vários threads no CrossValidated no tópico seleção de modelo e validação cruzada. Aqui estão alguns:
- Validação cruzada interna x externa e seleção de modelo
- A melhor resposta de @ DikranMarsupial para Seleção de recursos e validação cruzada
No entanto, as respostas para esses encadeamentos são bastante genéricas e destacam principalmente os problemas com abordagens específicas para validação cruzada e seleção de modelos.
Para tornar as coisas o mais concretas possível , digamos, por exemplo, que estamos trabalhando com um SVM com um kernel RBF: , e que Eu tenho um conjunto de dados dos recursos X e os rótulos y e quero
- Encontre os melhores valores possíveis do meu modelo ( e )
- Treinar o SVM com meu conjunto de dados (para implantação final)
- Estime o erro de generalização e a incerteza (variação) em torno desse erro
Para fazer isso, eu pessoalmente faria uma pesquisa em grade, por exemplo, tento todas as combinações possíveis de e . Para simplificar, podemos assumir os seguintes intervalos:
Mais especificamente, usando meu conjunto de dados completo, faço o seguinte:
- Para cada par ( , ), faço repetidas iterações (por exemplo, 100 repetições aleatórias) da validação cruzada de fold (por exemplo, ), no meu conjunto de dados, ou seja, treino meu SVM nas dobras e avalio o erro na dobra esquerda, repetindo todas as dobras. No geral, coleciono 100 x 10 = 1000 erros de teste.K = 10 K - 1 K
- Para cada par ( , ), calculo a média e a variação desses 1000 erros de teste .γ μ M , σ M
Agora, quero escolher o melhor modelo (os melhores parâmetros do kernel) que eu usaria para treinar meu SVM final no conjunto de dados completo. Meu entendimento é que escolher o modelo com a menor média de erro e variância e seria a escolha certa, e que o modeloσ M μ M são são minhas melhores estimativas do viés e variância do erro de generalização do modelo ao treinar com o conjunto de dados completo.
MAS, depois de ler as respostas nos tópicos acima, estou tendo a impressão de que esse método para escolher o melhor SVM para implantação e / ou para estimar seu erro (desempenho de generalização) é defeituoso e que existem maneiras melhores de escolher o melhor SVM e relatando seu erro. Se sim, o que são? Estou procurando uma resposta concreta, por favor.
Mantendo esse problema, como posso escolher o melhor modelo e estimar adequadamente seu erro de generalização ?