Depois que os dados são analisados e as instâncias e atributos apropriados são selecionados, o conjunto de todos os dados é dividido em um conjunto de treinamento (treinável) e um conjunto de testes. Como pode adivinhar pelo nome do conjunto, o conjunto de treinamento é usado para treinar o próprio modelo de ML. Um algoritmo selecionado é aplicado a ele e cria o próprio modelo. Um conjunto de testes é usado para testar o modelo, ou seja, o cálculo de medidas adequadas de qualidade do modelo. Graças a ele, pode-se avaliar objetivamente o quão bem o modelo aprendeu a tarefa necessária. Normalmente, também usamos uma parte dos dados do conjunto de dados de linha de base para criar um conjunto de validação. Um kit de validação é usado para acompanhar o processo de treinamento de um modelo e determinar algumas configurações de modelo que levam a melhores medidas de qualidade. Estes tópicos serão discutidos mais adiante no curso.

Dividindo um conjunto de dados num conjunto de treinamento, um conjunto de validação e um conjunto de testes

Os conjuntos de treinamento, validação e teste geralmente são criados dividindo aleatoriamente um conjunto de dados subjacente. Primeiro, definimos o tamanho desses conjuntos e, em seguida, selecionamos aleatoriamente as instâncias que serão encontradas em cada um deles. Normalmente, o conjunto de treinamento é o maior, enquanto os conjuntos de teste e validação são menores porque queremos ter dados suficientes para treinar o modelo, mas também dados suficientes para avaliar adequadamente seu desempenho. A prática é que as proporções de tamanho desses conjuntos sejam expressas em proporção. Por exemplo, muitas vezes encontrará a proporção do conjunto de treinamento para o conjunto de teste expressa como 2:1, o que significaria que dois terços do conjunto inicial é um conjunto de treinamento e um terço é um conjunto de teste. Da mesma forma, uma proporção de 2:1:1 significaria que dois quartos (ou seja, metade) do conjunto de base seriam usados como um kit de treinamento e um quarto cada como um conjunto de validação e teste.

Embora seja conveniente que os conjuntos de treinamento, validação e teste sejam criados aleatoriamente, isso ainda significaria alguma visão sobre como essa divisão foi feita. Por exemplo, quando queremos replicar um experimento ou permitir que outros o executem por conta própria (esta é uma propriedade importante dos experimentos e é chamada de reprodutibilidade), é preferível usar os mesmos conjuntos de treinamento, validação e teste. Da mesma forma, quando resolvemos um problema, não temos certeza imediata do que é melhor fazer, então tentamos um número maior de algoritmos e criamos um número maior de modelos. Por uma questão de equidade de comparação, isso significaria que criamos todos os modelos sobre o mesmo conjunto de treinamento e avaliamos sobre o mesmo conjunto de testes. É por isso que é uma boa ideia definir um parâmetro no nível da biblioteca que afeta a aleatoriedade da divisão (geralmente chamada de semente aleatória e tem o mesmo propósito de definir sementes em um gerador de números aleatórios) ou simplesmente dividir os dados do zero e continuar a usá-los de forma consistente. Alguns conjuntos de dados comumente usados têm essas divisões predefinidas em um conjunto para treinamento, validação e teste (por exemplo, você pode examinar o  conjunto MNIST).

Uma propriedade importante que os conjuntos de treinamento, validação e teste precisam atender é que eles sejam desarticulados. Isso significa que cada instância do conjunto de dados de origem ao criar conjuntos de treinamento, validação e teste deve pertencer exatamente a um desses conjuntos e não deve haver interseções e instâncias compartilhadas. Deve-se lembrar que espera-se que os modelos de aprendizado de máquina generalizem bem, ou seja, que se comportem bem para novas instâncias que o modelo não teve a oportunidade de conhecer no conjunto de treinamento. Se os conjuntos de treinamento e os conjuntos de teste se sobrepõem, não seremos capazes de avaliar objetivamente se o modelo realmente aprende ou memoriza. Recorda informações do conjunto de treino. O mesmo se aplica à relação entre o conjunto de treino e o conjunto de validação: a função do conjunto de validação é ajudar a selecionar as configurações que tornarão a aprendizagem tão bem-sucedida quanto possível. Se esses conjuntos se sobrepõem, não seremos capazes de avaliar objetiva e imparcialmente o comportamento do modelo e selecionar as configurações adequadas.

O requisito de que os conjuntos de treino, validação e teste sejam separados significa também que as informações de um conjunto não devem transbordar para os outros. Isto é especialmente importante quando se aplicam técnicas definidas de pré-processamento e preparação dos dados.
Vamos considerar o exemplo seguinte. Mencionámos que, devido à sensibilidade do modelo de ML aos valores dos atributos, a padronização dos atributos numéricos é frequentemente realizada. Poderia pensar-se em calcular a média e o desvio padrão com base em todo o conjunto de dados e, em seguida, utilizar esses valores para padronizar os conjuntos de treino e teste.
Para evitar o transbordamento de informação, a sequência correta dessas etapas é, na verdade, a seguinte:

  • dividir o conjunto de dados num conjunto de treinamento e testes,
  • cálculo da média e do desvio-padrão apenas no conjunto de treino,
  • transformação do conjunto de treino utilizando valores calculados,
  • Transforme o conjunto de testes usando os valores calculados ao longo do conjunto de treinamento.

Devido ao desejo de evitar erros, pode parecer razoável fazer o seguinte: depois de dividir o conjunto de dados inicial em conjunto de treino e conjunto de teste, realizar uma padronização separada para cada um desses conjuntos. No entanto, esta abordagem, embora mais cautelosa, não está correta, pois implica modificar o conjunto de teste de forma indevida.

Na imagem inferior esquerda, os triângulos amarelos representam as ocorrências do conjunto de treino e os círculos azuis as do conjunto de teste. A imagem do meio mostra essas instâncias após a padronização correta (podes comparar cuidadosamente as imagens e a disposição dos pontos — a escala no eixo x mudou devido à padronização, mas o resto manteve-se igual). Na imagem à direita, podes ver as instâncias depois de uma padronização feita separadamente para o conjunto de treino e para o conjunto de teste — agora, a disposição espacial mudou bastante.

Exemplos de padronização certa e errada

Ao dividir o conjunto de dados da linha de base, seria ideal preservar as proporções relativas aos valores dos atributos e ao valor da variável de destino. Por exemplo, se a proporção de pacientes do sexo masculino para o feminino no conjunto de dados médicos for de 4:5, seria ideal que, após a divisão, a proporção de pacientes no conjunto de treinamento e no conjunto de testes fosse de aproximadamente 4:5. As técnicas que permitem esse tipo de divisão são chamadas de técnicas de estratificação . No entanto, devido ao número de atributos e suas combinações, na prática, este não é muitas vezes um requisito realista, por isso, na maioria das vezes, insiste-se na proporcionalidade em relação aos valores da variável alvo. Discutiremos este tópico separadamente no contexto da tarefa de classificação.

Montagens estratificadas de treinamento e teste

Last modified: Tuesday, 22 July 2025, 12:52 PM