Como saber que seu problema de aprendizado de máquina é inútil?


207

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.


11
Esse problema pode ser respondido em termos práticos (como o @StephanKolassa fez) ou em termos absolutos (algum tipo de teorema que mostra um determinado modelo pode aprender um problema se certas condições forem atendidas). Qual deles você quer?
Superbest

3
Isso soa semelhante ao clássico problema de parada da ciência da computação? Digamos que você tenha algum algoritmo A de complexidade arbitrária que pesquisa os dados de entrada D procurando modelos preditivos, e o algoritmo pára quando encontra um modelo "bom" para os dados. Sem adicionar uma estrutura significativa em A e D, não vejo como você pode dizer se A interromperá a entrada D, como saber se A acabará por ter sucesso ou continuará pesquisando para sempre?
Matthew Gunn

@Superbest pode ser ambos. Se você tem algo a acrescentar, sinta-se à vontade para responder. Nunca ouvi falar de teoremas que afirmam algo sobre lidar com dados ruidosos multidimensionais da vida real, mas se você souber um que se aplique, ficaria interessado em ler sua resposta.
Tim

3
Com base na resposta de StephenKolassa, outra pergunta que você poderia fazer é: "Em que momento devo levar meu trabalho até agora para os especialistas no assunto e discutir meus resultados (ou falta de resultados)?"
Robert de Graaf

Respostas:


241

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:

ovos

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:

jogo de hockey

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:

ponto fora da curva

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 :

[T] aqui são conhecidos conhecidos; Há coisas que sabemos que sabemos. Também sabemos que existem incógnitas conhecidas; isto é, sabemos que existem algumas coisas que não sabemos. Mas também existem incógnitas desconhecidas - aquelas que não sabemos, não sabemos.

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:

  1. Você sempre precisa incluir o conhecimento do domínio em sua modelagem e previsão.
  2. Mesmo com o conhecimento do domínio, não é garantido que você obtenha informações suficientes para que suas previsões e previsões sejam aceitáveis ​​para o usuário. Veja isso acima.
  3. Se "seus resultados são miseráveis", você pode esperar mais do que pode alcançar. Se você está prevendo um sorteio justo, não há como obter uma precisão acima de 50%. Também não confie nos benchmarks de precisão de previsão externa.

A linha inferior

Aqui está como eu recomendaria a construção de modelos - e percebendo quando parar:

  1. Converse com alguém com conhecimento de domínio, se você ainda não o possui.
  2. Identifique os principais drivers dos dados que você deseja prever, incluindo interações prováveis, com base na etapa 1.
  3. Crie modelos iterativamente, incluindo drivers em ordem decrescente de força, conforme a etapa 2. Avalie os modelos usando validação cruzada ou uma amostra de validação.
  4. Se a precisão da sua previsão não aumentar mais, volte para a etapa 1 (por exemplo, identificando más previsões flagrantes que você não pode explicar e discutindo-as com o especialista do domínio) ou aceite que você chegou ao final do seu capacidades dos modelos. O time-box da sua análise com antecedência ajuda.

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 .


10
+1 para uma resposta maravilhosa com a qual concordo totalmente. Não estou aceitando (ainda), pois ainda espero por outras respostas, já que o problema é amplo.
Tim

11
Certo. Eu adoraria ver a perspectiva de outra pessoa sobre isso também!
101316 Stephan Kolassa

9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.. Você disse tudo lá.
Walfrat 05/07

3
Usando o conhecimento do domínio, você pode adicionar novos recursos aos dois primeiros casos (por exemplo, tempo até a Páscoa e os números de exibição de TV, embora este último precise de previsão própria) para obter resultados muito melhores. Em nenhum dos casos a situação é desesperadora. A parte realmente interessante é como distinguir o conhecimento do domínio ausente de um conjunto de dados de lançamentos justos de moedas.
usar o seguinte código

4
@ KarolisJuodelė: esse é exatamente o meu ponto. Não podemos nem saber quando nossa situação é desesperadora, a menos que conversemos com um especialista ... e então, às vezes, o especialista também não pode nos ajudar, e há "incógnitas desconhecidas" para os especialistas, o que é concebível que outra pessoa possa conhecer.
precisa saber é o seguinte

57

A resposta de Stephan Kolassa é excelente, mas gostaria de acrescentar que também há frequentemente uma condição de parada econômica:

  1. Quando você faz ML para um cliente e não por diversão, deve dar uma olhada na quantidade de dinheiro que o cliente está disposto a gastar. Se ele pagar à sua empresa 5000 € e você gastar um mês em encontrar um modelo, você perderá dinheiro. Parece trivial, mas já vi "deve haver uma solução !!!!" - pensando que levou a enormes disparos de custos. Portanto, pare quando o dinheiro acabar e comunique o problema ao seu cliente.
  2. Se você fez algum trabalho, geralmente sente o que é possível com o conjunto de dados atual. Tente aplicar isso à quantidade de dinheiro que você pode ganhar com o modelo; se a quantia for trivial ou negativa líquida (por exemplo, devido ao tempo para coletar dados, desenvolver uma solução etc.), você deve parar.

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!


11
+1 definitivamente um ótimo ponto! Acho que todas as respostas a essa pergunta podem parecer "óbvias", mas não vi em lugar nenhum todas essas coisas "óbvias" reunidas para referência.
Tim

3
Aliás, essa regra de parada se aplica também a casos não comerciais: por exemplo, se você fizer algum tipo de pesquisa, nossos resultados também terão algum valor abstrato e a análise "sem esperança" contínua também é razoável apenas até que o valor da sua análise exceda o que você deseja. poderia ter feito. Portanto, esse argumento teórico da decisão pode ser tornado mais geral.
Tim

2
Eu acho que "ninguém usaria ist e foi enlatado" provavelmente deveria ser alterado para "ninguém teria usado e foi enlatado" - esse era o seu significado pretendido?
6286 Silverfish

2
Obrigado. Eu diria que não é apenas sobre o tempo, mas sobre o fato de que você pode investir o tempo de maneira diferente. Em vez disso, você poderia trabalhar em um projeto de pesquisa sobre outro medicamento que salvaria seu tempo, mas também o público se beneficiaria com os resultados etc.
Tim

2
@ChristianSauer Na minha experiência como engenheiro, o problema de uma incompatibilidade entre sensores (medidores cf) e uma finalidade útil provavelmente antecede a invenção do transistor.
Robert de Graaf

9

Existe outro caminho. Pergunte a si mesmo -

  1. Quem ou o que faz as melhores previsões possíveis para essa variável específica? "
  2. Meu algoritmo de aprendizado de máquina produz resultados melhores ou piores que as melhores previsões?

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:

  1. Você está usando os mesmos dados que o melhor especialista nessa tarefa em particular?
  2. Você está usando os dados com a mesma eficácia que o melhor especialista nessa tarefa específica?

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.


11
Na verdade, sua resposta contradiz a resposta de @StephanKolassa, onde ele se refere à literatura sugerindo que os benchmarks de previsão são bastante enganadores.
Tim

11
@ Tim: divulgação completa - esse link foi para um artigo sobre benchmarks que eu mesmo escrevi. No entanto, mantenho minhas conclusões: todos os benchmarks de precisão de previsão de demanda que eu vi muito provavelmente comparam maçãs com laranjas. Portanto, sou um pouco cético em relação a olhar para benchmarks externos. Além disso, acho que essa resposta sugere um pouco a pergunta. Uma vez que seu algoritmo ML melhora "o mais conhecido", como você sabe se pode melhorá-lo ainda mais ou se alcançamos O Platô da Desesperança?
23916 Stephan Stephanassass

11
Meu caso de uso mais recente foi bem diferente. Eu estava tentando prever quem corria o risco de se matar por causa de suas postagens na internet. Existem vários testes psicométricos que se pode usar para medir a gravidade da depressão, como o PHQ9. Como é um exame médico amplamente utilizado, há um trabalho considerável sobre sua validade e confiabilidade, como "A validade do PHQ-9 de uma breve medida de gravidade da depressão". Eu descobri que a confiabilidade e outras medidas nesse documento são um bom ponto de partida para os resultados prováveis ​​que se pode obter com o aprendizado de máquina.
26516 Gavin Potter

11
Você está certo, é claro, em melhorar o "mais conhecido"; não há como dizer se deve continuar procurando um modelo melhor. Mas, na minha experiência, é bastante raro isso ocorrer em uma situação do mundo real. A maior parte do trabalho que faço parece ser sobre a tentativa de aplicar julgamentos de especialistas em escala através do uso de aprendizado de máquina, sem tentar melhorar o melhor especialista da área.
Gavin Potter
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.