Validação cruzada, incluindo treinamento, validação e teste. Por que precisamos de três subconjuntos?

28

Eu tenho uma pergunta sobre o processo de validação cruzada. Estou no meio de um curso de Machine Learning no Cursera. Um dos tópicos é sobre a validação cruzada. Achei um pouco difícil de seguir. Eu sei por que precisamos do CV porque queremos que nossos modelos funcionem bem em dados futuros (desconhecidos) e o CV evita o ajuste excessivo. No entanto, o próprio processo é confuso.

O que entendi é que divido os dados em três subconjuntos: treinamento, validação e teste. Treinar e validar é encontrar a complexidade ideal de um modelo. O que eu não entendo é o terceiro subconjunto. Entendo que pego vários recursos para o modelo, treino e valido no subconjunto Validação e procuro a Função de Custo mínima quando altero a estrutura. Quando o encontrei, testo o modelo no subconjunto Teste. Se eu já encontrei a função de custo mínimo no subconjunto de validação, por que precisaria testá-lo novamente no subconjunto de teste ???

Alguém poderia esclarecer isso para mim?

Obrigado

Celdor
fonte
Você encontrará o artigo e a discussão em [1] não irrelevantes para a sua pergunta. Na memória, ele menciona três subconjuntos: o primeiro a formular um modelo, o segundo a estimar seus parâmetros e o terceiro a validá-lo por previsão. [1] Chatfield, C. Incerteza do modelo, mineração de dados e inferência estatística (com discussão) Jornal da Royal Statistical Society. Série A (Statistics in Society), 1995, 158, 419-466
Hibernando
Felicidades! A linha por trás este link também é uma boa fonte para a compreensão deste :)
Celdor

Respostas:

37
  • O conjunto de treinamento é usado para escolher os parâmetros ideais para um determinado modelo. Observe que avaliar um determinado conjunto de parâmetros usando o conjunto de treinamento deve fornecer uma estimativa imparcial da sua função de custo - é o ato de escolher os parâmetros que otimizam a estimativa da sua função de custo com base no conjunto de treinamento que influencia a estimativa que eles fornecem . Os parâmetros escolhidos foram os que apresentaram melhor desempenho no conjunto de treinamento; portanto, o desempenho aparente desses parâmetros, conforme avaliado no conjunto de treinamento, será excessivamente otimista.
  • Tendo treinado usando o conjunto de treinamento, o conjunto de validação é usado para escolher o melhor modelo. Novamente, observe que a avaliação de qualquer modelo usando o conjunto de validação deve fornecer uma estimativa representativa da função de custo - é o ato de escolher o modelo que apresenta melhor desempenho no conjunto de validação que influencia a estimativa que eles fornecem. O modelo foi escolhido com o melhor desempenho no conjunto de validação; portanto, o desempenho aparente desse modelo, conforme avaliado no conjunto de validação, será excessivamente otimista.
  • Depois de treinar cada modelo usando o conjunto de treinamento e escolher o melhor modelo usando o conjunto de validação , o conjunto de testes mostra o quão boa é sua escolha final do modelo. Ele fornece uma estimativa imparcial do desempenho real que você obterá em tempo de execução, o que é importante saber por vários motivos. Você não pode usar o conjunto de treinamento para isso, porque os parâmetros são direcionados a ele. E você não pode usar o conjunto de validação para isso, porque o modelo em si é tendencioso em relação a eles. Daí a necessidade de um terceiro conjunto.
Pat
fonte
Eu posso ver isso agora. Obrigado. Não pensei no fato de que precisaria de mais um subconjunto para encontrar desempenho imparcial em termos da estrutura do modelo. Saúde :) É uma explicação muito boa.
Celdor
Então, isso significa que o conjunto de testes final não desempenha nenhum papel na otimização do modelo ou na seleção do melhor modelo?
Anmol Singh Jaggi
11
Não. De fato, ele deve ser usado apenas para estimar o desempenho esperado. Portanto, se você não gostar do resultado do desempenho no conjunto de testes, deve realmente evitar o desejo de ajustar seu modelo para otimizar o resultado do teste, pois seu modelo seria tendencioso novamente.
Ytsen de Boer
12

Se eu já encontrei a função de custo mínimo no subconjunto Validação, por que precisaria testá-lo novamente no subconjunto Teste

Devido a um erro aleatório: geralmente você tem apenas um número finito de casos.

A otimização do desempenho da validação (teste interno) significa que você pode estar adaptando-se a esse conjunto de testes interno. O conjunto de testes internos contribui para a estimativa do modelo final e, portanto, não é independente do modelo.

Isso significa que você precisa ter outro conjunto de testes (externo) independente de todo o procedimento de modelagem (incluindo todos os processos de otimização e pré-processamento orientado a dados ou de seleção de modelos) se desejar estimar as propriedades de generalização.

Eu recomendo que você faça uma simulação e compare as três estimativas de erro diferentes que você pode ter

  • ressubstituição: a previsão do conjunto de trens
    mede a qualidade do ajuste
  • conjunto de teste interno (na sua nomenclatura: validação): a qualidade que o otimizador pensa que é alcançada
  • conjunto de teste externo: erro de generalização, independente do treinamento do modelo.

Em uma simulação, você pode compará-los facilmente também com um conjunto de testes adequado, grande e gerado de forma independente. Se a configuração estiver correta, o teste externo deve ser imparcial (com base no modelo substituto que avalia, não com um modelo "final" construído em todo o conjunto de dados). O teste interno geralmente é tendenciosamente otimista, e a re-substituição é ainda mais otimista.

No meu campo, o teste interno subestimaria facilmente o erro de generalização por um fator de 2 a 5 (muito mais para esquemas de otimização agressivos).


Nota: a nomenclatura dos conjuntos não é universal. No meu campo (química analítica), a validação geralmente significaria a prova do desempenho do procedimento final - portanto, mais o que o seu conjunto de "testes" faz do que o seu conjunto de "validação".

Portanto, prefiro falar dos conjuntos de testes internos e externos ou do conjunto de testes de otimização (= conjunto de testes interno) e, em seguida, o conjunto de validação significaria o conjunto de testes externo.

cbeleites suporta Monica
fonte
2

Durante o treinamento do modelo, é necessário selecionar metametros para o modelo (por exemplo, parâmetro de regularização) ou até escolher entre vários modelos. Nesse caso, o subconjunto de validação é usado para a escolha de parâmetros, mas o subconjunto de teste para a estimativa de previsão final.

oraz
fonte