4
respostas

Dúvida sobre Treino/Teste

Vou tentar dividir as dúvidas de forma clara. Partindo do pressuposto que:

1 - Muito se falou sobre testar para saber como o modelo se comportaria com outros dados, do mundo real. Então pergunto:

1 .1 - Os dados utilizados representam um comportamento do mundo real?

SIM: O treino, teste e avaliações se separados não deveriam manter a mesma proporção (representação da realidade)?

NÃO: Deveríamos pré processar os dados para torná-los mais próximos da realidade? Treinando com dados que não representam o mundo real não seria navegar com a bússola sem norte?

NÃO SABEMOS: Se não sabemos se os dados representam ou não o mundo real, faz alguma diferença em testar se não sabemos se estamos melhorando? Ou não seria mais interessante treinar e testar com várias amostras aleatórias?

4 respostas

1.2 - Testar com os mesmos dados de treino;

1.2.1 - Caso os dados representem SIM a realidade e ela tende a ter certo grau de estabilidade:

Neste caso os dados representam um comportamento real em um dado momento e que tende a se manter próximo do observado.

Ao testarmos exatamente com os mesmos dados de treino, estamos testando um cenário ideal, portanto saberemos o quanto o modelo aprendeu? Não seria uma forma de escolher quais modelos respondem melhor a essas informações?

Por exemplo:

Treino e testo com o AdaBoost usando os mesmos dados. No cenário ideal os novos dados de entrada são iguais ou muito próximos aos de treino. E ele me da um resultado de 54% de acerto. Treino com outro modelo e consigo nas mesmas condições 84%.

A curto prazo (amostra pequena) o AdaBoost pode até ter um resultado melhor, mas com o passar do tempo os dados tende a se aproximar dos dados de treino, onde o AdaBoost ficou com 54% de acerto.

Se tiramos amostras fixas dos dados, a ordem importa. E isto afeta os resultados de teste.

1.3 - Diversidade de dados vs quantidade.

Vamos supor que tenho uma base com 100.000 dados, e que a faço treino com 80.000 deles e obtenho uma acurácia de 80%.

Quando olho os dados de perto mantendo apenas valores únicos, percebo que ele possui 4 situações que as vendas são feitas e 1 que não há venda.

Passo a treinar aquele grupo com 5 dados de entrada no lugar de 80.000 e obter o mesmo resultado?

1.4 - Dados artificiais nos testes.

Vamos supor que o modelo foi treinado com os seguintes dados:

  X     |   y
0, 0, 0  |   1
0, 1, 0  |   1
0, 1, 1  |   1
1, 0, 0  |   0
0, 1, 1  |   1

Mas quando vou usar no mundo real, além daqueles de treino, tenho dados não previstos:

  X     
1, 0, 1  
1, 1, 0  
1, 1, 1  

Em conjunto de dados binários, e levando em consideração o tamanho e custo de trabalhar com os dados, não poderíamos criar artificialmente dados que representem potenciais situações da realidade?

Em outras palavras, ao reduzir o volume de dados para pequenos grupos que representam a base de dados, posso treinar com uma maior diversidade e preencher lacunas.

Olá Bruno.

Muito legal os seus questionamento e o seu estudo sobre como mudar os dados altera os resultados, nesses 3 cursos que temos na plataforma aprendemos sobre técnicas de como explorar nossos dados e parâmetros dos nosso algoritmos.

Um ponto que julgo importante em relação ao treinamento do modelo depois da analise foi discutido nesse tópico.

O que entendo do seu questionamento é que não temos uma resposta definitiva e ela vai depender do problemas que estamos resolvendo e dos dados que temos e que por isso aprendemos diversas técnicas e ferramentas que vão nos permitir explorar nossa situação e entender qual é a melhor abordagem.

Parabéns pelos questionamentos, bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software