E se alta precisão de validação, mas baixa precisão de teste em pesquisa?

15

Eu tenho uma pergunta específica sobre validação na pesquisa de aprendizado de máquina.

Como sabemos, o regime de aprendizado de máquina solicita que os pesquisadores treinem seus modelos nos dados de treinamento, escolha modelos candidatos por conjunto de validação e relate a precisão no conjunto de testes. Em um estudo muito rigoroso, o conjunto de testes pode ser usado apenas uma vez. No entanto, nunca pode ser o cenário de pesquisa, porque precisamos melhorar nosso desempenho até que a precisão do teste seja melhor do que os resultados mais avançados antes que possamos publicar (ou mesmo enviar) um artigo.

Agora vem o problema. Digamos que 50% é o resultado mais avançado, e meu modelo geralmente consegue uma precisão de 50 a 51, o que é melhor em média.

No entanto, minha melhor precisão de validação (52%) produz uma precisão de teste muito baixa, por exemplo, 49%. Então, tenho que relatar 49% como meu desempenho geral se não puder melhorar ainda mais a validação, o que acho que não tem esperança. Isso realmente me impede de estudar o problema, mas isso não importa para meus colegas, porque eles não veem os 52% de acentos, o que eu acho que é um erro.

Então, como as pessoas costumam fazer em suas pesquisas?

A validação do ps k fold não ajuda em nada, porque a mesma situação ainda pode acontecer.

Mou
fonte

Respostas:

9

Por definição, quando a precisão do treinamento (ou qualquer métrica que você estiver usando) for maior que o seu teste, você terá um modelo de super ajuste . Em essência, seu modelo aprendeu detalhes que o ajudam a ter melhor desempenho nos dados de treinamento que não são aplicáveis ​​à população de dados maior e, portanto, resultam em pior desempenho.

Não sei por que você diz que a validação do k-fold não seria útil. Seu objetivo é ajudar a evitar o excesso de ajuste nos seus modelos. Talvez você não tenha dados suficientes? Uma declaração como essa é importante, especialmente se você defenderá alguma pesquisa quando esses métodos de validação cruzada forem altamente recomendados.

Você diz que não é capaz de usar o conjunto de testes apenas uma vez (mais uma vez presumo um tamanho de amostra menor?). Na minha experiência, o caminho mais comum seguido é a validação cruzada k-fold do seu modelo. Vamos dar um exemplo com CV 10 vezes para um tamanho de amostra de 100 e supor que seu problema de classificação seja binário para simplificar os cálculos. Portanto, dividi meus dados em 10 dobras diferentes . Depois, encaixei meu modelo em 9/10 dobras e depois prevejo o 1/10 que deixei de fora. Para esta primeira execução, a matriz de confusão resultante é:

    0  1
0   4  1
1   2  3

Repito essa análise novamente com a próxima 1/10 dobra deixada de fora e treino nas outras 9/10. E pegue minha próxima matriz de confusão. Depois de concluído, tenho 10 matrizes de confusão. Em seguida, somaria essas matrizes (para ter todas as 100 amostras previstas) e depois relataria minhas estatísticas (precisão, PPV, pontuação na F1, Kappa etc.). Se a sua precisão não estiver onde você deseja, existem muitas outras possibilidades.

  1. Seu modelo precisa ser aprimorado (alterar parâmetros)
  2. Pode ser necessário tentar um algoritmo de aprendizado de máquina diferente (nem todos os algoritmos criados iguais)
  3. Você precisa de mais dados (relacionamento sutil difícil de encontrar)
  4. Pode ser necessário tentar transformar seus dados (dependendo do algoritmo usado)
  5. Pode não haver relação entre suas variáveis ​​dependentes e independentes

O fato é que uma métrica de teste mais baixa (por exemplo, precisão) do que o seu treinamento é indicativa de sobreajustar seu modelo, não algo que você deseja ao tentar criar um novo modelo preditivo.

cdeterman
fonte
Obrigado por responder. O que me interessa é a pesquisa de aprendizado de máquina para publicações, em vez de aplicar técnicas de aprendizado de máquina. Muitas vezes, os benchmarks fornecem a divisão padrão dos conjuntos de treinamento, validação e teste. Além disso, a dobra k apenas reduz a variação. Ainda posso me deparar com a situação, onde minha validação (média) está de acordo. é alto, mas o teste está de acordo. é baixo.
Mou
Às vezes, é engraçado que, se eu redesenhar meu modelo um pouco, eu posso simplesmente ignorar o outlier porque meu modelo (e, portanto, a classe de hipótese) muda, mas isso não funciona para ajustar os hiperparâmetros, porque estamos escolhendo um modelo a partir da hipótese classe. No entanto, de fato, nós, pesquisadores, temos uma classe de hipótese indefinida - estamos tentando o que quisermos. Isso realmente me incomoda durante a pesquisa, pois muitas vezes a diferença de precisão é geralmente muito pequena, digamos 0,1%.
Mou
@ Mu, eu acho que ainda estou um pouco incerto qual é a sua principal pergunta. Parece haver várias perguntas. Lidar com outliers é um tópico diferente. Você está tentando otimizar parâmetros ou avaliar um modelo final? Isso pode ser específico para campos diferentes, mas alterações de 0,1% são bastante insignificantes. Você pode seguir as opções listadas na minha resposta ou aceitar que você só pode obter muito do modelo e dos dados atuais. O modelo ainda parece estar super ajustado (embora ligeiramente).
cdeterman
Eu concordo com você. Eu tenho que aceitar que meu modelo não é tão bom. Mas há alguns dias atrás, quando a alta cv acc. + baixo teste de acc. não pulei para a minha tela, meu modelo era o melhor do mundo. Agora, não é, embora eu não tenha mudado nada. Além disso, não tenho esperança de superar 52% em cv de acordo, o que atrapalha minha pesquisa, mas meus colegas não precisam se preocupar com isso.
Mou
Você deve ter alterado algo para que os números sejam alterados ou há alguma randomização que você não definiu seedpara dar conta da reprodutibilidade. Eu suspeito que o seu procedimento CV tenha alguma randomização que, quando repetida, pode retornar resultados ligeiramente diferentes (mas isso é apenas um palpite). Eu realmente sugiro que você explore alguns outros modelos ou transformação de dados para tentar melhorar seu desempenho.
cdeterman