Exemplo de divisão de dados

Depois de coletar seus dados e fazer a amostragem quando necessário, a próxima etapa é dividi-los em conjuntos de treinamento, conjuntos de validação e conjuntos de teste.

Quando a divisão aleatória não é a melhor abordagem

Embora a divisão aleatória seja a melhor abordagem para muitos problemas de ML, ela nem sempre é a solução certa. Por exemplo, considere conjuntos de dados em que os exemplos são agrupados naturalmente em exemplos semelhantes.

Suponha que você queira que seu modelo classifique o tópico do texto de uma matéria jornalística. Por que uma divisão aleatória seria problemática?

Quatro clusters de artigos separados, rotulados como "História 1", "História 2",
"História 3" e "História 4") aparecem em uma
linha do tempo. Figura 1. As notícias são agrupadas.

As notícias aparecem em clusters: várias matérias sobre o mesmo tema são publicadas ao mesmo tempo. Se dividirmos os dados aleatoriamente, o conjunto de teste e o conjunto de treinamento provavelmente terão as mesmas histórias. Na verdade, ele não funcionaria dessa forma, porque todas as histórias chegarão ao mesmo tempo, portanto, fazer a divisão como essa faria desvio.

Os mesmos artigos da Figura 1 não estão mais em uma linha do tempo. Em vez disso, os
artigos agora são divididos aleatoriamente em
um conjunto de treinamento e um conjunto de teste. Os conjuntos de treinamento e teste
contém uma combinação de exemplos diferentes de todas as quatro
histórias. Figura 2. Uma divisão aleatória dividirá um cluster entre os conjuntos, causando o desvio.

Uma abordagem simples para corrigir esse problema seria dividir nossos dados com base no momento em que a matéria foi publicada, talvez por dia em que ela foi publicada. Por isso, matérias do mesmo dia são colocadas na mesma divisão.

A linha do tempo original da Figura 1 agora é dividida em um conjunto
de treinamento e um conjunto de teste. Todos os artigos de "História 1" e "História 2"
estão no conjunto de treinamento e todos os artigos de "História 3" e "História 4"
estão no conjunto de
teste. Figura 3. A divisão a tempo permite que os clusters acabem no mesmo conjunto.

Com dezenas ou milhares de notícias, uma porcentagem pode ser dividida entre os dias. Mas isso não é um problema. Na verdade, essas histórias foram divididas por dois dias no ciclo de notícias. Como alternativa, você poderia descartar dados dentro de uma determinada distância do limite para garantir que não haja sobreposição. Por exemplo, é possível treinar nas histórias do mês de abril e usar a segunda semana de maio como o conjunto de teste, com o intervalo de semana evitando sobreposição.