3
respostas

Dúvida na 3ª fase do algoritmo (testar com dados reais)

Galera, não consegui entender a motivação de realizar esses testes com dados reais (3ªfase) , após a escolha do algoritmo de classificação de melhor desempenho para aquele conjunto de dados.

Eu entendi que devemos treinar os dados (1ª fase), depois testá-los (2ª fase) para descobrirmos o melhor algoritmo de classificação, E ,achado o melhor algoritmo, devemos validá-los com dados reais.

Mas para que exatamente precisamos validar com esses dados reais? Não já sabemos o desempenho do algoritmo, ao realizar o teste da 2ª fase? Não já sabemos qual é o melhor entre os dois ? Por que precisamos realizar outro teste? Eu entendi perfeitamente a implementação do ponto de vista da codificação, o que não entendi exatamente é a motivação de fazer isso. Não seria suficiente terminar na fase 2?

Obrigado, aguardo respostas :)

3 respostas

Olá Thiago,

o que vou falar é apenas como entendi essa questão.

A porcentagem de acertos do algoritmo (quão bom é o algoritmo) depende muito do conjunto de dados que você usa, como visto nas aulas anteriores, isso quer dizer que um mesmo algoritmo pode ser muito bom para um conjunto de dados específico e péssimo para outro.

Por exemplo, digamos que temos um conjunto de 100 dados que mostram que todas as pessoas que compraram no site eram do Rio de Janeiro, o algoritmo foi então treinado para saber que pessoas do Rio de Janeiro sempre compram no site, mas esse conjunto de 100 dados pode ter sido de um dia particular em que se teve uma super promoção no Rio de Janeiro, por exemplo, colocando todos os cursos de graça (Alura, isso pode ser entendido como uma sugestão ;) ).

Isso nos diz que nunca sabemos como o nosso algoritmo é em geral, só podemos ter certeza de como o algoritmo se comporta para aquele conjunto de dados específico, por isso para cada validação precisamos de um novo conjunto de dados, nunca antes observado pelo algoritmo, pois isso irá simular de melhor forma a realidade.

Como já usamos um conjunto de dados na fase 2 para selecionar um algoritmo, precisamos agora usar um novo conjunto de dados para verificar se o que vimos, sobre ele ser realmente melhor, se confirma.

Como disse, essa é só a forma como eu entendi. Qlqr coisa dá uma mão aí xD

[]'s,

olá Pablo Ribeiro, tudo bem? Antes de tudo, agradeço pela sua resposta. E desculpe-me a demora em retornar a resposta, essa semana foi corrida para mim.

Então essa terceira fase é apenas um novo teste para sabermos um pouco mais sobre o desempenho do algoritmo vencedor ?

Esse indicador de desempenho só tem a finalidade de mostrar que devemos melhorar o processo de aprendizagem então? Por exemplo: O resultado da minha fase 3 foi ruim, então devemos treinar com novos dados (por exemplo: dias sem promoções).

É esse seu entendimento?

Por fim, agradeço mais uma vez pela resposta, pois um debate como esse enriquece nossos conhecimentos e esclarecem dúvidas.

Olá Thiago.

Realmente essa é uma duvida conceitual pertinente.

Busquei no livro, Machine Learning Introdução a Classificação, uma explicação diferente, mas que a se assemelha a dada pelo nosso colega Pablo.

Com os resultados obtidos na fase de teste não podemos afirmar que teremos a mesma precisão no mundo real e isso porque o conjunto de dados que temos no treino, teste ou mundo real são diferentes e nosso algoritmo vai se comportar de maneira diferente. Então a precisão que temos na segundo fase só tem o intuito de nos ajudar a escolher qual dos dois algoritmos escolher.

A finalidade dessa ultima etapa, teste com dados reais, é para podermos afirmar se nosso algoritmo é bom ou ruim no mundo real.

Espero ter ajudado quem estiver com essa duvida. E como foi dito essa é uma discussão muito saudável e nos ajuda a ter um maior domínio sobre esses conceitos.

Bons Estudos :D