A análise exploratória de dados é importante ao fazer modelagem puramente preditiva?

23

Ao construir um modelo preditivo usando técnicas de aprendizado de máquina, qual é o sentido de fazer uma análise exploratória de dados (EDA)? Não há problema em ir direto à geração de recursos e à construção de seus modelos? Como as estatísticas descritivas usadas na EDA são importantes?

blast00
fonte
6
Você pergunta sobre "análise exploratória de dados", mas também inclui a [descriptive-statistics]tag e sua pergunta final é se a estatística descritiva é importante. Nesse contexto, você só quer dizer computar várias estatísticas descritivas quando menciona a EDA ou está perguntando sobre estatística descritiva e EDA? Eu pergunto porque muitas pessoas (inclusive eu) pensam na EDA como mais do que apenas estatísticas descritivas.
gung - Restabelece Monica
O que exatamente é "geração de recursos"? Não é um processo exploratório?
einar
5
Ultimamente, recebi 224 observações de 37 indivíduos. Eu tinha planejado investigar - entre outras - a influência de gênero / sexo, quando a análise descritiva me disse que havia 36 mulheres e 1 homem. Por causa dessa estatística descritiva, pulei todas as análises relacionadas a gênero / sexo. Foi importante para mim, porque os descritivos influenciaram meu processo de construção de modelo. Mais informações sobre esses dados aqui stats.stackexchange.com/questions/352015/...
Bernhard

Respostas:

47

Há pouco tempo, eu tinha uma tarefa de entrevista para uma posição de ciência de dados. Recebi um conjunto de dados e me pediram para construir um modelo preditivo para prever uma determinada variável binária, dadas as outras, com um prazo de algumas horas.

Analisei cada uma das variáveis, por sua vez, fazendo gráficos, calculando estatísticas resumidas etc. Também calculei correlações entre as variáveis ​​numéricas.

Entre as coisas que encontrei foram:

  • Uma variável categórica correspondeu quase perfeitamente ao alvo.
  • Duas ou três variáveis ​​tiveram mais da metade de seus valores ausentes.
  • Algumas variáveis ​​apresentaram valores extremos extremos.
  • Duas das variáveis ​​numéricas estavam perfeitamente correlacionadas.
  • etc.

Meu argumento é que essas foram as coisas que foram colocadas deliberadamente para ver se as pessoas as notariam antes de tentar construir um modelo. A empresa os colocou porque eles são o tipo de coisa que pode acontecer na vida real e afetam drasticamente o desempenho do modelo.

Então, sim, a EDA é importante ao fazer aprendizado de máquina!

Solha
fonte
8
Quando dou tarefas aos alunos, também faço isso também ;-).
gung - Restabelece Monica
14

Obviamente sim.

A análise dos dados pode levar a muitos pontos que prejudicariam seu modelo preditivo:

Dados incompletos

Supondo que estamos falando de dados quantitativos, você terá que decidir se deseja ignorar a coluna (se houver muitos dados ausentes) ou descobrir qual será o seu valor "padrão" (Média, Modo, Etc). Você não pode fazer isso sem explorar seus dados primeiro.

Dados anormais

Digamos que você tenha dados fortemente correlacionados, mas há 2% dos seus dados que estão muito longe dessa correlação. Você pode remover esses dados completamente para ajudar seu modelo preditivo

Remover colunas com muita correlação

Ok, isso contradiz um pouco meu ponto anterior, mas o inglês não é minha língua principal, então espero que você entenda.

Vou dar um exemplo idiota, digamos que você analisa o conjunto de dados de um estádio de futebol e você tem Width, Length, Areacomo parâmetros. Bem, podemos facilmente imaginar que esses três parâmetros estarão fortemente correlacionados. Ter muita correlação entre sua coluna leva o modelo preditivo na direção errada. Você pode decidir liberar um ou mais dos parâmetros.

Encontre novos recursos

Vou dar o exemplo da pequena "competição" do Titanic Kaggle . Ao olhar para os nomes das pessoas, você pode descobrir que pode extrair um recurso que é o Titleda pessoa. Esse recurso acaba sendo muito importante quando se trata de modelagem, mas você o teria perdido se não analisasse seus dados primeiro.

Você pode decidir agrupar seus dados contínuos porque parece mais apropriado ou transformar um recurso contínuo em um categórico.

Encontre que tipo de algoritmo usar

Não posso desenhar gráficos agora, mas vamos fazer deste um exemplo simples.

Imagine que você tenha um modelo pequeno com uma coluna de recurso e uma coluna "resultado" binária (apenas 0 ou 1). Você deseja criar um modelo de classificação preditiva para esse conjunto de dados.

Se, mais uma vez, como exemplo, você tiver que plotá-lo (analise seus dados), poderá perceber que o gráfico forma um círculo perfeito em torno do seu valor 1. Nesse cenário, seria óbvio que você poderia usar um classificador polinomial para ter um ótimo modelo em vez de pular direto para o DNN. (Obviamente, considerando que há apenas duas colunas no meu exemplo, não é um excelente exemplo, mas você entendeu)

No geral, você não pode esperar que um modelo preditivo tenha um bom desempenho se não olhar primeiro os dados.

IEatBagels
fonte
8

Uma coisa importante feita pela EDA é encontrar erros de entrada de dados e outros pontos anômalos.

Outra é que a distribuição de variáveis ​​pode influenciar os modelos que você tenta ajustar.

Peter Flom - Restabelece Monica
fonte
8

Costumávamos ter uma frase em química:

" Duas semanas passadas no laboratório podem economizar duas horas no Scifinder ".

Tenho certeza que o mesmo se aplica ao aprendizado de máquina:

" Duas semanas dedicadas ao treinamento de uma rede neural podem economizar 2 horas observando os dados de entrada ".

Essas são as coisas pelas quais eu passaria antes de iniciar qualquer processo de ML.

  • Traçar a densidade de cada variável (contínua). Como os números são distorcidos? Preciso de uma transformação de log para fazer os dados fazerem sentido? A que distância estão os outliers? Existem valores que não fazem sentido físico ou lógico?
  • Fique de olho nas NAs. Geralmente, você pode descartá-los, mas se houver muitos deles, ou se eles representarem um aspecto crucial do comportamento do sistema, talvez seja necessário encontrar uma maneira de recriar os dados. Este poderia ser um projeto em si.
  • Plote todas as variáveis ​​na variável de resposta. Qual o sentido que você consegue com isso apenas observando? Existem curvas óbvias que podem ser ajustadas com funções?
  • Avalie se você precisa ou não de um modelo complicado de ML em primeiro lugar. Às vezes, a regressão linear é tudo o que você realmente precisa. Mesmo se não for, ele fornece uma boa linha de base para o seu modelo de ML melhorar.

Além dessas etapas básicas, eu não gastaria muito tempo olhando os dados antes de aplicar os processos de ML a eles. Se você já possui um grande número de variáveis, as combinações não lineares complicadas delas ficam cada vez mais difíceis, não apenas para encontrar, mas para plotar e entender. Esse é o tipo de coisa melhor manipulada pelo computador.

Ingolifs
fonte
6

Perspectiva estatística:

Deixando de lado os erros no estágio de modelagem, há três resultados prováveis ​​de tentativa de previsão sem primeiro fazer a EDA:

  1. A previsão fornece resultados óbvios sem sentido, porque seus dados de entrada violaram as suposições do seu método de previsão. Agora você precisa voltar e verificar suas entradas para descobrir onde está o problema, corrigir o problema e refazer a análise. Dependendo da natureza do problema, pode ser necessário alterar os métodos de previsão. (Como assim, essa é uma variável categórica ?)
  2. A previsão fornece resultados ruins, mas não obviamente ruins, porque seus dados violaram suposições de uma maneira um pouco menos óbvia. Você volta e verifica essas suposições de qualquer maneira (nesse caso, veja o item 1 acima) ou aceita resultados ruins.
  3. Por sorte, seus dados de entrada são exatamente o que você esperava que fosse (eu entendo que isso acontece ocasionalmente) e a previsão fornece bons resultados ... o que seria ótimo, exceto que você não pode dizer a diferença entre isso e # 2 acima.

Perspectiva de gerenciamento de projetos:

Resolver problemas de dados pode levar uma quantidade significativa de tempo e esforço. Por exemplo:

  • Os dados estão sujos e você precisa gastar tempo desenvolvendo processos para limpá-los. (Por exemplo: a hora em que tive que codificar uma autocorreção para todas as pessoas que continuam escrevendo o ano errado em janeiro, as pessoas que inserem a data no campo ano e o sistema que estava analisando datas como MM / DD / AAAA em vez de DD / MM / AAAA.)
  • Você precisa fazer perguntas sobre o que os dados significam e apenas Joan pode respondê-las. Joan está de férias de seis meses, começando duas semanas após o início do seu projeto.
  • As limitações de dados impedem que você entregue tudo o que pretendia entregar (cf. o exemplo de Bernhard de não poder produzir análise por sexo / gênero porque o conjunto de dados tinha apenas uma mulher) e você / seus clientes precisam descobrir o que fazer sobre isso .

Quanto mais cedo você identificar esses problemas, maiores serão suas chances de manter seu projeto nos trilhos, de terminar no prazo e de fazer seus clientes felizes.

Geoffrey Brent
fonte