Eu tenho um conjunto de dados de 120 amostras em uma configuração de validação cruzada de 10 vezes. Atualmente, eu escolho os dados de treinamento do primeiro holdout e faço uma validação cruzada 5 vezes para escolher os valores de gama e C pela pesquisa em grade. Estou usando o SVM com o kernel RBF. Como estou fazendo uma validação cruzada de dez 10 para relatar a precisão, lembre-se, realizo essa pesquisa de grade nos dados de treinamento de cada exercício (existem 10 exercícios, cada um com 10% de teste e 90% de dados de treinamento)? Isso não consumiria muito tempo?
Se eu usar a gama e C do primeiro holdout e usá-lo para o restante dos 9 holdouts da validação cruzada k-fold, isso é uma violação, porque eu teria usado os dados do trem para obter gama e C e novamente usar o parte dos dados do trem como teste no segundo suporte?
fonte
Respostas:
Sim, isso seria uma violação, pois os dados de teste para as dobras 2-10 da validação cruzada externa teriam sido parte dos dados de treinamento da dobra 1, que foram usados para determinar os valores do kernel e dos parâmetros de regularização. Isso significa que algumas informações sobre os dados de teste vazaram potencialmente para o design do modelo, o que potencialmente fornece um viés otimista para a avaliação de desempenho, o que é mais otimista para modelos que são muito sensíveis à configuração dos hiperparâmetros (ou seja, favorece firmemente os modelos com um recurso indesejável).
É provável que esse viés seja mais forte para conjuntos de dados pequenos, como este, pois a variação do critério de seleção de modelo é maior para conjuntos de dados pequenos, o que incentiva a super adaptação do critério de seleção de modelo, o que significa que mais informações sobre os dados de teste podem vazar através.
Eu escrevi um artigo sobre isso há um ou dois anos, pois fiquei bastante surpreso com a magnitude dos desvios que a validação cruzada aninhada completa pode introduzir, o que pode facilmente reduzir a diferença de desempenho entre os sistemas classificadores. O artigo é "Sobre adaptação excessiva na seleção de modelos e viés de seleção subsequente na avaliação de desempenho" Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (Jul): 2079-2107, 2010.
O ajuste essencial dos hiperparâmetros deve ser considerado parte integrante da adaptação do modelo, portanto, toda vez que você treinar o SVM em uma nova amostra de dados, reajuste independentemente os hiperparâmetros para essa amostra. Se você seguir essa regra, provavelmente não poderá dar muito errado. Vale a pena a despesa computacional para obter uma estimativa de desempenho imparcial, caso contrário, você corre o risco de tirar conclusões erradas de seu experimento.
fonte
Depois de fazer a pesquisa em grade para cada modelo substituto, você pode e deve verificar algumas coisas:
Se a validação cruzada interna (ou seja, ajuste) parecer muito melhor do que a validação externa (validação do modelo final), também estará com problemas: você está se adaptando demais. Existe um risco substancial de que os parâmetros ajustados não sejam ótimos. No entanto, se a validação cruzada externa for feita corretamente (todos os conjuntos de testes são realmente independentes dos respectivos modelos substitutos), pelo menos você ainda terá uma estimativa imparcial (!) Do desempenho do modelo. Mas você não pode ter certeza de que é o ideal.
Há muito a dizer sobre o ajuste excessivo pela seleção de modelos. No entanto, é bom ter em mente que tanto a variação quanto o viés otimista podem realmente prejudicar
Se você está interessado em um exemplo e pode ler alemão, eu poderia colocar minha tese do Diplom online.
Na minha experiência, o ajuste de hiperparâmetros é uma idéia extremamente eficaz para o ajuste excessivo ...
Agora, se você perceber que está se adaptando demais, terá basicamente duas opções:
Como alternativa ao ajuste dos hiperparâmetros para cada conjunto de treinamento, você pode pré-especificar (hiper) parâmetros (ou seja, corrigi-los com antecedência). Faço isso o máximo possível para meus modelos, pois geralmente tenho menos casos do que você, veja abaixo.
No entanto, essa correção deve ser feita de maneira honesta e honesta: por exemplo, solicitei a um colega seus parâmetros otimizados em um conjunto de dados semelhante (experimento independente) ou fiz um pré-experimento, incluindo a pesquisa em grade nos parâmetros. Esse primeiro experimento é usado para fixar alguns parâmetros experimentais, bem como modelar parâmetros para o experimento real e a análise de dados. Veja abaixo mais explicações.
Obviamente, é possível fazer testes adequados em modelos otimizados automaticamente (validação dupla ou aninhada), mas o tamanho da amostra pode não permitir a divisão dos dados duas vezes .
Nessa situação, é muito melhor IMHO relatar uma estimativa honesta para um modelo que foi construído usando experiência profissional em como escolher parâmetros de modelagem do que relatar uma estimativa super-otimista em algum tipo de modelo otimizado automaticamente.
Outro ponto de vista sobre a situação é que você precisa trocar
Alguns pensamentos semelhantes sobre uma pergunta semelhante: /stats//a/27761/4598
Sobre a fixação de parâmetros e os comentários de Dikran Marsupial
Estou usando o termo hiperparâmetros como Dikran Marsupial o usa em seu artigo (link em sua resposta)
Eu trabalho com dados espectroscópicos. Esse é um tipo de medida em que a análise e modelagem de dados geralmente inclui bastante pré-processamento. Isso pode ser visto como hiper-parâmetros (por exemplo, que ordem do polinômio deve ser usada para a linha de base? Quais canais de medição devem ser incluídos?). Existem outras decisões mais próximas dos seus parâmetros svm, por exemplo, quantos componentes principais usar se um PCA for feito para redução da dimensionalidade antes que o modelo "real" seja treinado? E às vezes eu também uso a classificação SVM, então tenho que decidir sobre os parâmetros SVM.
Agora, o IMHO, a melhor maneira de corrigir hiperparâmetros é se você tiver motivos que vêm do aplicativo. Por exemplo, eu normalmente decido sobre que tipo de linha de base usar por razões físicas / químicas / biológicas (ou seja, conhecimento sobre a amostra e o comportamento espectroscópico que se segue). No entanto, não conheço essa argumentação que ajuda com os parâmetros SVM ...
O caso dos pré-experimentos que mencionei acima é o seguinte:
Os espectros são analisados, a SVM de validação cruzada dupla iterada é executada (passou uma ou duas noites no servidor de computação).
Minha conclusão é: embora eu não tenha certeza de que os hiperparâmetros finais sejam ótimos, a validação cruzada externa me fornece uma estimativa adequada do desempenho dos modelos substitutos.
Durante a parte experimental, decidimos algumas mudanças na configuração experimental (coisas que não afetam o sinal de ruído dos dados, mas que dão um passo adiante na automatização do instrumento)
Melhoramos as configurações experimentais e adquirimos novos espectros. Como as células são, elas precisam ser cultivadas de fresco. Ou seja, o novo conjunto de dados são até lotes de cultura independentes.
Agora, enfrento a decisão: devo "pular" a validação cruzada interna e seguir os hiperparâmetros que determinei com os dados antigos?
Portanto, nesse caso, decidi seguir parâmetros fixos (com experiência em dados semelhantes e sabendo que no futuro teremos que fazer nossa "lição de casa", incluindo, entre outras coisas, verificar novamente essas decisões com grandes dados).
Observe que o importante é pular a interna ( validação cruzada de ajuste ), não a externa. Com hiperparâmetros fixos, obtenho uma estimativa imparcial do desempenho de um modelo possivelmente subótimo. É verdade que essa estimativa está sujeita a alta variação, mas essa variação é basicamente a mesma, seja eu o ajuste interno ou não.
Ignorando a vaidação cruzada externa, eu obteria uma estimativa otimista de um modelo ajustado - que, dependendo da aplicação e dos dados, pode ser inútil (se muito otimista demais) e o viés otimista pode ser claramente inaceitável.
fonte
A chave que eu acho é procurar alguma suavidade na superfície ao redor dos mínimos locais (ou cada projeção de 1 dim) e não apenas pegar o mínimo global.
fonte