Quando você está tentando ajustar modelos a um grande conjunto de dados, o conselho comum é particionar os dados em três partes: o conjunto de dados de treinamento, validação e teste.
Isso ocorre porque os modelos geralmente têm três "níveis" de parâmetros: o primeiro "parâmetro" é a classe do modelo (por exemplo, SVM, rede neural, floresta aleatória), o segundo conjunto de parâmetros são os parâmetros de "regularização" ou "hiperparâmetros" ( por exemplo, coeficiente de penalidade de laço, escolha de kernel, estrutura de rede neural) e o terceiro conjunto são geralmente considerados os "parâmetros" (por exemplo, coeficientes para as covariáveis).
Dada uma classe de modelo e uma opção de hiperparâmetros, seleciona-se os parâmetros, escolhendo os parâmetros que minimizam o erro no conjunto de treinamento. Dada uma classe de modelo, é possível ajustar os hiperparâmetros minimizando o erro no conjunto de validação. Um seleciona a classe do modelo pelo desempenho no conjunto de testes.
Mas por que não mais partições? Frequentemente, é possível dividir os hiperparâmetros em dois grupos e usar uma "validação 1" para ajustar o primeiro e "validação 2" para ajustar o segundo. Ou pode-se até tratar o tamanho dos dados de treinamento / dados de validação divididos como um hiperparâmetro a ser ajustado.
Isso já é uma prática comum em alguns aplicativos? Existe algum trabalho teórico sobre o particionamento ideal de dados?