Por que dividir os dados no conjunto de treinamento e teste não é suficiente

18

Eu sei que, para acessar o desempenho do classificador, tenho que dividir os dados em conjunto de treinamento / teste. Mas lendo isso :

Ao avaliar configurações diferentes ("hiperparâmetros") para estimadores, como a configuração C que deve ser definida manualmente para um SVM, ainda existe o risco de sobreajuste no conjunto de testes, pois os parâmetros podem ser ajustados até que o estimador funcione de maneira otimizada. Dessa forma, o conhecimento sobre o conjunto de testes pode "vazar" no modelo e as métricas de avaliação não relatam mais o desempenho da generalização. Para resolver esse problema, ainda outra parte do conjunto de dados pode ser mantida como o chamado "conjunto de validação": o treinamento prossegue no conjunto de treinamento, após o qual a avaliação é feita no conjunto de validação e quando o experimento parece ser bem-sucedido , a avaliação final pode ser feita no conjunto de testes.

Vejo que outro (terceiro) conjunto de validação é introduzido, o que é justificado pela super adaptação do conjunto de testes durante o ajuste dos hiperparâmetros.

O problema é que não consigo entender como essa adaptação pode aparecer e, portanto, não consigo entender a justificativa do terceiro conjunto.

Salvador Dalí
fonte
2
Eu acho que muita confusão aqui vem de 2 ou 3 significados bastante diferentes do termo "validação". A validação na validação cruzada é principalmente apenas um nome para um procedimento de divisão sem substituição. A "validação" definida no texto citado seria melhor entendida como "ajuste" ou "conjunto de otimização". Enquanto "validação", por exemplo, em engenharia ou também em química analítica, significa provar que um determinado método final é adequado a sua finalidade - o que é feito (simulado, aproximado) pelo conjunto de "testes". (Para mim, testando sons muito menos definitiva do que a validação ...)
cbeleites suporta Monica

Respostas:

17

Mesmo que você esteja treinando modelos exclusivamente nos dados de treinamento, está otimizando os hiperparâmetros (por exemplo, para um SVM) com base no conjunto de testes. Dessa forma, sua estimativa de desempenho pode ser otimista, porque você está basicamente reportando os melhores resultados. Como alguns deste site já mencionaram, a otimização é a raiz de todo mal nas estatísticas .C

As estimativas de desempenho devem sempre ser feitas com dados completamente independentes. Se você estiver otimizando algum aspecto com base nos dados de teste, seus dados de teste não serão mais independentes e você precisará de um conjunto de validação.

Outra maneira de lidar com isso é através da validação cruzada aninhada , que consiste em dois procedimentos de validação cruzada envolvidos um ao outro. A validação cruzada interna é usada no ajuste (para estimar o desempenho de um determinado conjunto de hiperparâmetros, que é otimizado) e a validação cruzada externa estima o desempenho de generalização de todo o pipeline de aprendizado de máquina (ou seja, otimizando hiperparâmetros + treinando o modelo final )

Marc Claesen
fonte
Eu posso estar errado, mas o conjunto de teste não é apenas para ajustar os hiperparâmetros, mas também para comparar diferentes tipos de técnicas, como por exemplo, o desempenho do SVM em comparação com o LDA ou floresta aleatória, como indiquei na minha resposta.
@fcoppens Sim, definitivamente. Não mencionei explicitamente isso, mas isso certamente também se encaixa nessa etapa.
Marc Claesen
1
de maneira mais geral, ajuste ou otimização aqui é qualquer tipo de processo orientado a dados (pela validação cruzada interna).
Cbeleites suporta Monica
@MarcClaesen Eu tenho uma pergunta. Se eu tiver 2 valores diferentes do hiperparâmetro e ajustar esses 2 modelos no conjunto de treinamento, aplicá-los no conjunto de teste, se a taxa de erro obtida no conjunto de teste for um estimador imparcial da verdadeira taxa de erro de previsão de esses 2 modelos? Como se você agora me fornecer outro conjunto de dados de teste independente, esse novo conjunto de dados de teste será basicamente o mesmo que o conjunto de testes anterior. Portanto, se um modelo tiver uma melhor pontuação no teste, ele também deverá superar o outro modelo em um novo conjunto de dados de teste. Por que precisamos de um conjunto de validação?
KevinKim
"Se você estiver otimizando algum aspecto com base nos dados de teste, seus dados não serão mais independentes e você precisará de um conjunto de validação." isso é perspicaz
Sudip Bhandari
11

Eu acho que é mais fácil pensar nas coisas dessa maneira. Há duas coisas pelas quais a validação cruzada é usada: ajustar os hiper parâmetros de um modelo / algoritmo e avaliar o desempenho de um modelo / algoritmo.

Considere o primeiro uso como parte do treinamento real do algoritmo. Por exemplo, a validação cruzada para determinar a força de regularização de um GLM faz parte do estabelecimento do resultado final do GLM. Esse uso geralmente é chamado de validação cruzada interna . Como os (hiper) parâmetros ainda estão sendo definidos, a perda do conjunto de ajustes não é uma grande medida do desempenho real dos algoritmos.

O segundo uso da validação cruzada é usar dados mantidos fora de todo o processo que produziu o modelo, para testar seu poder preditivo. Esse processo é chamado de validação cruzada externa .

Observe que a validação interna pode ter sido parte do processo que produziu o modelo; portanto, em muitos casos, a validação cruzada interna e externa é necessária.

jlimahaverford
fonte
Pessoalmente, eu não usaria a frase "validação cruzada externa", pois veria a validação cruzada como a divisão repetida de diferentes conjuntos de validação do conjunto de treinamento para fins de seleção e ajuste de modelo. Você não pode fazer isso significativamente repetidamente com o conjunto de testes, pois é um proxy único para dados futuros ainda desconhecidos, usados ​​para julgar o desempenho do modelo final.
Henry
3
Henry, não acho que você esteja entendendo a validação cruzada externa. Você pode "fazer isso repetidamente com o conjunto de testes", mantendo repetidamente parte de seus dados completos para fins de teste enquanto executa o procedimento de treinamento completo nos demais (o que pode incluir validação cruzada interna). A validação cruzada externa ainda é normalmente feita em dobras e permite que todos os dados originais estejam em algum momento no conjunto de testes.
Jlimahaverford 26/08
αα
2

Durante a construção do modelo, você treina seus modelos em uma amostra de treinamento . Observe que você pode treinar modelos diferentes (ou seja, técnicas diferentes, como SVM, LDA, Floresta Aleatória, ... ou a mesma técnica com valores diferentes dos parâmetros de ajuste ou uma mistura).

Entre todos os diferentes modelos que você treinou, você deve escolher um e, portanto, usar a amostra de validação para encontrar aquele com o menor erro na amostra de teste.

Para este modelo 'final', ainda temos que estimar o erro e, portanto, usamos a amostra de teste .


fonte
1
Eu inverteria a redação em seu segundo e terceiro parágrafos: usaria o conjunto de validação para encontrar o melhor modelo e ajustar seus hiperparâmetros (fazendo isso com vários conjuntos de validação que particionam o conjunto de treinamento faz essa validação cruzada ) e, assim que o modelo tiver finalizado, aplique-o ao conjunto de testes para ver um exemplo do desempenho fora da amostra do modelo.
Henry
@Henry: OK Henry, acho que os rótulos das fases são menos importantes que vários daqueles seqüência / conteúdos, mas a sua observação faz sentido para mim, eu vou editar o texto, graças (+1),
1

A validação cruzada não supera completamente o problema de excesso de ajuste na seleção de modelos, apenas o reduz. O erro de validação cruzada depende do conjunto de dados que você usa. Quanto menor o conjunto de dados, maior será o erro de validação cruzada.

Além disso, se você tiver altos graus de liberdade na seleção de modelos, existe o risco de o modelo ter um desempenho ruim, pois o critério de validação cruzada é super ajustado.

Portanto, quando os dados são divididos em 2 conjuntos, também conhecidos como conjuntos de treinamento e teste, a divisão é feita estaticamente. Portanto, há uma chance de sobreajustar o conjunto de treinamento. No entanto, os conjuntos de validação cruzada são criados por métodos diferentes , como a validação cruzada k-fold, a validação cruzada de deixar de fora uma (LOOCV), etc., o que ajuda a garantir que a recompensa exata do ajuste da divisão de 2 conjuntos seja eliminada e assim a chance de excesso de ajuste é reduzida.

Esses são alguns recursos que ajudarão você a entender melhor.

Portanto, a validação cruzada ajudaria quando você tiver um conjunto de dados maior, em vez de um menor.

Dawny33
fonte