Validação cruzada no StackingClassifier Scikit-Learn
StackingClassifier Na documentação do Scikit-Learn está escrito:
Observe que
estimators_são ajustados emXtempo integralfinal_estimator_são treinados usando previsões de validação cruzada dos estimadores de base usandocross_val_predict.
... a validação cruzada padrão de 5 vezes
Minha pergunta, por que usar validação cruzada de 5 vezes apenas no estimador final? por que o estimador final não é ajustado no X' completo (resultado dos estimadores de base)?
Respostas
Isso inclui 2 perguntas, abordarei cada uma delas.
- Poderíamos usar validação cruzada em todo o sistema, mas isso nos prejudicaria um pouco demais.
O objetivo da validação cruzada é encontrar os parâmetros ótimos, aqueles que permitem que o modelo se ajuste bem aos dados sem sobreajuste. Basta que nosso estimador final faça isso; não há necessidade de descobrir individualmente as configurações de todos os estimadores de base. Os estimadores de base podem incluir várias configurações de parâmetros diferentes, por exemplo; bem como uma seleção de diferentes tipos de classificadores. Se algum deles for propenso a overfitting, isso deve ser compensado por outros que não tenham esse problema. Contanto que o estimador final não coloque todos os ovos na cesta errada, tudo bem (e é por isso que precisamos de validação cruzada aqui, para garantir que isso não aconteça).
- Vamos treinar o estimador final no conjunto de treinamento completo - isso acontece depois que encontramos os parâmetros ideais ou o conjunto de estimadores de base usando a validação cruzada. Como o nome diz, a validação cruzada serve para validar o método. Não para criar o modelo final.