Imagine um cenário padrão de aprendizado de máquina:
Você é confrontado com um grande conjunto de dados multivariado e tem uma compreensão bastante embaçada dele. O que você precisa fazer é fazer previsões sobre alguma variável com base no que você tem. Como de costume, você limpa os dados, analisa as estatísticas descritivas, executa alguns modelos, os valida cruzadamente etc. etc., mas após várias tentativas, indo e voltando e experimentando vários modelos, nada parece funcionar e seus resultados são miseráveis. Você pode passar horas, dias ou semanas com esse problema ...
A questão é: quando parar? Como você sabe que seus dados são realmente sem esperança e que todos os modelos sofisticados não seriam mais úteis do que prever o resultado médio para todos os casos ou alguma outra solução trivial?
Obviamente, esse é um problema de previsibilidade, mas, até onde eu sei, é difícil avaliar a previsibilidade de dados multivariados antes de tentar algo. Ou eu estou errado?
Isenção de responsabilidade: esta pergunta foi inspirada por esta. Quando devo parar de procurar um modelo? isso não atraiu muita atenção. Seria bom ter uma resposta detalhada a essa pergunta para referência.
Respostas:
Previsibilidade
Você está certo que esta é uma questão de previsibilidade. Houve alguns artigos sobre previsibilidade na revista orientada para o praticante do IIF Foresight . (Divulgação completa: sou um editor associado.)
O problema é que a previsibilidade já é difícil de avaliar em casos "simples".
Alguns exemplos
Suponha que você tenha uma série cronológica como esta, mas não fale alemão:
Como você modelaria o pico máximo em abril e como incluiria essas informações em quaisquer previsões?
A menos que você soubesse que essa série cronológica é a venda de ovos em uma cadeia de supermercados suíça, que atinge o pico imediatamente antes do calendário ocidental da Páscoa , você não teria chance. Além disso, com a Páscoa movimentando o calendário em até seis semanas, qualquer previsão que não inclua o conteúdo específico data da Páscoa (supondo, digamos, que esse fosse apenas algum pico sazonal que ocorreria em uma semana específica no próximo ano) provavelmente seria muito ruim.
Da mesma forma, suponha que você tenha a linha azul abaixo e queira modelar o que aconteceu em 28-02-2010, de maneira tão diferente dos padrões "normais" em 27-02-2010:
Novamente, sem saber o que acontece quando uma cidade cheia de canadenses assiste a um jogo olímpico de finais de hóquei no gelo na TV, você não tem chance de entender o que aconteceu aqui e não poderá prever quando algo assim ocorrerá.
Por fim, veja isso:
Esta é uma série temporal de vendas diárias em uma loja de dinheiro e transporte . (À direita, você tem uma tabela simples: 282 dias tiveram vendas zero, 42 dias tiveram vendas de 1 ... e um dia tiveram vendas de 500.) Não sei qual item é.
Até hoje, não sei o que aconteceu naquele dia com vendas de 500. Meu melhor palpite é que alguns clientes encomendaram uma grande quantidade de qualquer produto que fosse e o coletaram. Agora, sem saber disso, qualquer previsão para esse dia em particular estará longe. Por outro lado, suponha que isso aconteceu logo antes da Páscoa, e temos um algoritmo burro e inteligente que acredita que isso poderia ser um efeito da Páscoa (talvez sejam ovos?) E, felizmente, prevê 500 unidades para a próxima Páscoa. Oh meu, poderia que dar errado.
Sumário
Em todos os casos, vemos como a previsibilidade só pode ser bem compreendida quando temos uma compreensão suficientemente profunda dos fatores prováveis que influenciam nossos dados. O problema é que, a menos que conheçamos esses fatores, não sabemos que talvez não os conheçamos. Conforme Donald Rumsfeld :
Se a predileção da Páscoa ou dos canadenses pelo hóquei é uma incógnita desconhecida para nós, estamos paralisados - e nem temos um caminho a seguir, porque não sabemos que perguntas precisamos fazer.
A única maneira de lidar com isso é reunir conhecimento de domínio.
Conclusões
Retiro três conclusões disso:
A linha inferior
Aqui está como eu recomendaria a construção de modelos - e percebendo quando parar:
Observe que não estou defendendo a tentativa de diferentes classes de modelos, se o seu modelo original é o platô. Normalmente, se você começou com um modelo razoável, o uso de algo mais sofisticado não trará um grande benefício e pode simplesmente ser "sobreajustado no conjunto de testes". Eu já vi isso com frequência, e outras pessoas concordam .
fonte
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.
. Você disse tudo lá.A resposta de Stephan Kolassa é excelente, mas gostaria de acrescentar que também há frequentemente uma condição de parada econômica:
Como exemplo: tínhamos um cliente que queria prever quando suas máquinas quebram. Analisamos os dados existentes e descobrimos essencialmente ruído. Entramos no processo e descobrimos que os dados mais críticos não foram registrados e eram muito difíceis de coletar. Mas sem esses dados, nosso modelo era tão ruim que ninguém o teria usado e foi enlatado.
Enquanto eu me concentrei na economia ao trabalhar em um produto comercial, essa regra também se aplica à academia ou a projetos divertidos - embora o dinheiro seja menos preocupante em tais circunstâncias, o tempo ainda é uma mercadoria rara. Por exemplo. no meio acadêmico, você deve parar de trabalhar quando não produzir resultados tangíveis e tiver outros projetos mais promissores que poderia fazer. Mas não abandone esse projeto - publique também resultados nulos ou "preciso de mais / outros dados", eles também são importantes!
fonte
Existe outro caminho. Pergunte a si mesmo -
Portanto, por exemplo, se você tinha um grande número de variáveis associadas a diferentes times de futebol e estava tentando prever quem venceria, você pode olhar para as probabilidades das casas de apostas ou alguma forma de previsão da multidão para comparar com os resultados do seu aprendizado de máquina algoritmo. Se você é melhor, pode estar no limite; se pior, claramente há espaço para melhorias.
Sua capacidade de melhorar depende (amplamente) de duas coisas:
Depende exatamente do que estou tentando fazer, mas tenho a tendência de usar as respostas para essas perguntas para direcionar a direção em que vou na construção de um modelo, principalmente se é para tentar extrair mais dados que posso usar ou para me concentrar. tentando refinar o modelo.
Eu concordo com Stephan que geralmente a melhor maneira de fazer isso é perguntar a um especialista em domínio.
fonte