Nosso bag of words não deveria ser feito utilizando somente os dados de treino?
Nosso bag of words não deveria ser feito utilizando somente os dados de treino?
Olá, Cristiano! Tudo bem com você?
Desculpe pela demora em dar um retorno.
A criação do modelo Bag of Words (BoW) deve ser feita após a separação dos dados de treino e teste. Isso ocorre porque o conjunto de dados de teste serve como um "mundo desconhecido" para o modelo, que simula como o modelo lidará com novos dados no futuro para avaliações mais precisas de como o modelo irá se sair para dados nunca antes vistos.
Se você criar o BoW antes da divisão, estará utilizando informações do conjunto de teste (como as palavras presentes nesse conjunto) para treinar o modelo, o que é conhecido como vazamento de dados (data leakage), como você mencionou. Isso pode levar a uma avaliação superestimada do desempenho do modelo, pois ele teria informações durante o treinamento que não deveria ter e assim vai nos retornar resultados mais otimista do que a realidade.
Portanto as etapas recomendadas seriam:
A razão para seguir a abordagem acima é evitar o vazamento de informações do conjunto de teste para o conjunto de treinamento. Ao separar primeiro os dados e aplicar o BoW apenas no conjunto de treinamento, você garante que o modelo não tenha acesso às informações do conjunto de teste durante o treinamento.
Os cursos de NLP serão atualizados para remover essas inconsistências e melhorar ainda mais o conteúdo.
Bons estudos.