Validação cruzada k-fold da aprendizagem por conjuntos

20

Estou confuso sobre como particionar os dados para validação cruzada k-fold do aprendizado de conjuntos.

Supondo que eu tenha uma estrutura de aprendizado de conjuntos para classificação. Minha primeira camada contém os modelos de classificação, por exemplo, svm, árvores de decisão.

Minha segunda camada contém um modelo de votação, que combina as previsões da primeira camada e fornece a previsão final.

Se usarmos a validação de 5 dobras cruzadas, estou pensando em usar as 5 dobras da seguinte maneira:

  • 3 dobras para treinar a primeira camada
  • 1 dobra para treinar a segunda camada
  • 1 dobra para teste

Esta é a forma correta? Os dados de treinamento para a primeira e a segunda camada devem ser independentes? Eu estou pensando que eles devem ser independentes, para que a estrutura de aprendizado do conjunto seja robusta.

Meu amigo sugere que os dados de treinamento para a primeira e a segunda camada sejam os mesmos, ou seja,

  • 4 dobras para treinar a primeira e a segunda camada
  • 1 dobra para teste

Dessa forma, teremos um erro mais preciso da estrutura de aprendizado do conjunto, e o ajuste iterativo da estrutura será mais preciso, pois é baseado em um único dado de treinamento. Além disso, a segunda camada pode ser tendenciosa em relação aos dados de treinamento independentes

Quaisquer conselhos são muito apreciados

Michael
fonte

Respostas:

26

A aprendizagem por conjuntos refere-se a vários métodos diferentes. Impulsionar e ensacamento são provavelmente os dois mais comuns. Parece que você está tentando implementar um método de aprendizado de conjunto chamado empilhamento . O empilhamento visa melhorar a precisão combinando previsões de vários algoritmos de aprendizado. Existem várias maneiras de empilhar e não muita teoria rigorosa. É intuitivo e popular.

Considere a abordagem do seu amigo. Você está ajustando os modelos da primeira camada em quatro das cinco dobras e depois o modelo da segunda camada (votação) usando as mesmas quatro dobras. O problema é que a segunda camada favorecerá o modelo com o menor erro de treinamento. Você está usando os mesmos dados para ajustar modelos e planejar um procedimento para agregar esses modelos. A segunda camada deve combinar os modelos usando previsões fora da amostra . Seu método é melhor, mas existe uma maneira de melhorar ainda mais.

Continuaremos deixando de fora uma dobra para fins de teste. Faça as quatro dobras e use o CV 4 vezes para obter previsões fora da amostra para cada um dos seus modelos de primeira camada nas quatro dobras. Ou seja, deixe de fora uma das quatro dobras e ajuste os modelos nas outras três e, em seguida, preveja nos dados retidos. Repita para as quatro dobras para obter previsões fora da amostra nas quatro dobras. Em seguida, ajuste o modelo da segunda camada nessas previsões fora da amostra. Em seguida, ajuste os modelos da primeira camada novamente nas quatro dobras. Agora você pode ir para a quinta dobra que ainda não tocou. Use os modelos da primeira camada ajustados nas quatro dobras junto com o modelo da segunda camada para estimar o erro nos dados retidos. Você pode repetir esse processo novamente com as outras dobras mantidas fora do encaixe do modelo da primeira e da segunda camada.

Se você estiver satisfeito com o desempenho, gere previsões fora da amostra para os modelos da primeira camada nas cinco dobras e ajuste o modelo da segunda camada nessas. Em seguida, ajuste os modelos da primeira camada uma última vez em todos os seus dados e use-os com o modelo da segunda camada em qualquer novo dado!

Finalmente, alguns conselhos gerais. Você terá mais benefícios se seus modelos de primeira camada forem bastante distintos um do outro. Você está no caminho certo aqui, usando SVM e árvores de decisão, que são bem diferentes umas das outras. Como existe um efeito de média do modelo da segunda camada, convém tentar sobreajustar os modelos da primeira camada de maneira incremental, principalmente se você tiver muitos deles. A segunda camada é geralmente algo simples e restrições como não negatividade de pesos e monotonicidade são comuns. Por fim, lembre-se de que o empilhamento depende da validação cruzada, que é apenas uma estimativa do risco real. Se você obtiver taxas de erro muito diferentes e pesos de modelo muito diferentes nas dobras, isso indica que sua estimativa de risco baseada em CV tem alta variação. Nesse caso, você pode considerar uma mistura simplesdos seus modelos de primeira camada. Ou você pode comprometer empilhando com restrições sobre o peso máximo / mínimo colocado em cada modelo de primeira camada.

MichaelJ
fonte
Obrigado por suas sugestões muito úteis. Eu não entendo o seu quarto parágrafo. Parece-me que está a treinar novamente? Eu pensei que seu terceiro parágrafo resumiu seu método proposto?
Michael
1
Como de costume na validação cruzada, uma vez satisfeitos com o modelo, treinamos novamente usando todos os dados. Os modelos descritos no parágrafo três não se encaixam nos dados mantidos. A retenção de dados é uma ferramenta para orientar a avaliação e seleção de modelos. Você sempre deve ajustar o modelo final em todos os dados.
precisa
Parece-me que esta abordagem é semelhante a uma rede neural feedforward
Michael
Ótima explicação. A única coisa que falta é um diagrama;)
Josh