É uma boa prática dividir os dados (train_test_split) antes de selecionar utilizar o SelectKBest? Por que não realizar o train_test_split apenas após ter um dataset com as features selecionadas pelo SelectKBest?
É uma boa prática dividir os dados (train_test_split) antes de selecionar utilizar o SelectKBest? Por que não realizar o train_test_split apenas após ter um dataset com as features selecionadas pelo SelectKBest?
Olá,
O conjunto de teste é utilizado apenas para reportar a performance do modelo em um conjunto de dados nunca visto antes, e nunca utilizado para nenhuma decisão tomada acerca do modelo. Se utilizássemos o conjunto de teste para selecionar as features, estaríamos considerando estes dados para tomar decisões sobre a construção do nosso modelo, e esse não é o propósito do conjunto de testes.
Imagine um ambiente de produção, nós não utilizamos (e muitas vezes nem temos disponível no momento em questão) os dados de produção que serão scorados pelo modelo em nenhuma etapa da construção do modelo.