Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Por que a taxa de acerto não foi de 100%

Quando se executou o treino e o teste com os mesmos elementos não era de se esperar que a taxa de acerto fosse de 100% ao invés de 93,93%?

5 respostas

Oi Ingomar,

a sua pergunta faz sentido, mas, surpreendentemente, é melhor se não tivermos 100% de retorno no treino.

O que um modelo faz por baixo dos panos é tentar se adequar um pouco aos dados que você tem, entendê-los para que, ao inserirmos novos dados, a gente consiga ter um palpite, que é a predição.

Mas veja, se tivermos 100% de acerto, é como se ele só entendesse daqueles dados e ficasse viciado neles. E se estamos treinando algo para prever resultados futuros com outros dados, é melhor que ele seja um pouco mais flexível para que possa também entendê-los.

Isso que estamos falando, dar 100%, é chamado de Overfitting ou sobreajuste, se quiser ler um pouco, tem esse link, e você vai ver que vários artigos sobre o assunto pela web.

Espero ter respondido, qualquer outra dúvida só postar :).

Pois então quando usamos para o treino e para o teste os mesmos dados.  Não seria de se esperar justamente o sobreajuste. Pois todas as características e seus resultados são conhecidos ou se existem as mesmas combinações com resultados diferentes ao menos seria esperado que o percentual fosse variável entre um teste e outro. Mas o que parece que nesse caso o algoritmo sempre chuta a mesma resposta para a ocorrência de combinação de características desconhecidas.

Oi Ingomar,

eu entendo o seu ponto, ainda assim, ao rodarmos o modelo, mesmo com os dados conhecidos, estamos tentando achar uma função que se aproxime da descrição deles, mas não que seja aquela que gere os números, por exemplo. Isso faz mais sentido para você?

Se descrevermos assim, não dá 100% pois a função não é a geradora deles, e o resultado será o mesmo porque a função é a mesma.

Ainda, o teste é feito para testar a adequação do modelo (que vai criar essa função) com os dados de teste, e aí reproduzimos isso no treino, é melhor se forem semelhantes, senão estaremos usando uma função que não ficou boa. Se testamos para ter um certo resultado, e temos outro quando treinamos, o que aconteceu, certo?

Por isso que é importante também ter bons dados, senão você vai testar e vai dar zebra no treino.

Vai me falando se ajudou! A gente chega lá! :p

Sim, a questão está nos dados. Pois nesse exemplo ocorrem resultados diferentes para as mesmas características e a princípio é o esperado. Mas se alterarmos os dados podemos obter o 100%. Penso que existem universos de dados que conseguimos, pelas definições de suas características, defini-los de modo que o esperado seja o sobreajuste e a eventual diferença no percentual  seria um sinalizador da falta de alguma característica a ser acrescentada para identificar o elemento.
solução!

Oi Ingomar,

talvez então eu não tenha entendido a sua dúvida corretamente. :/

Se a dúvida era sobre se isso é possível, sim, com certeza isso é possivel e esses universos existem, mas aí não sei te dizer sobre o uso deles em Machine Learning, pois geralmente é o contrário. Sempre se tenta achar uma função que não dê o overfitting, e, se isso acontece, tentamos contornar esse problema.