Os pesquisadores do MIT esperam avançar na democratização da ciência de dados com uma nova ferramenta para não programadores que gera automaticamente modelos para analisar dados brutos. Crédito:Christine Daniloff, MIT
Os pesquisadores do MIT esperam avançar na democratização da ciência de dados com uma nova ferramenta para não estatísticos que gera automaticamente modelos para analisar dados brutos.
Democratizar a ciência de dados é a noção de que qualquer pessoa, com pouca ou nenhuma experiência, pode fazer ciência de dados se tiver dados amplos e ferramentas analíticas fáceis de usar. Apoiando essa ideia, a nova ferramenta ingere conjuntos de dados e gera modelos estatísticos sofisticados normalmente usados por especialistas para analisar, interpretar, e prever padrões subjacentes nos dados.
A ferramenta está atualmente no Jupyter Notebook, uma estrutura da web de código aberto que permite aos usuários executar programas interativamente em seus navegadores. Os usuários precisam apenas escrever algumas linhas de código para descobrir insights sobre, por exemplo, tendências financeiras, viagem aérea, padrões de votação, a propagação de doenças, e outras tendências.
Em um artigo apresentado no Simpósio ACM SIGPLAN sobre Princípios de Linguagens de Programação, os pesquisadores mostram que sua ferramenta pode extrair padrões com precisão e fazer previsões a partir de conjuntos de dados do mundo real, e até superam modelos construídos manualmente em certas tarefas de análise de dados.
"O objetivo de alto nível é tornar a ciência de dados acessível a pessoas que não são especialistas em estatística, "diz o primeiro autor Feras Saad '15, MEng '16, um Ph.D. Aluno do Departamento de Engenharia Elétrica e Ciência da Computação (EECS). "As pessoas têm muitos conjuntos de dados parados, e nosso objetivo é construir sistemas que permitam que as pessoas obtenham automaticamente modelos que possam usar para fazer perguntas sobre esses dados. "
Em última análise, a ferramenta aborda um gargalo no campo da ciência de dados, diz o co-autor Vikash Mansinghka '05, MEng '09, Ph.D. '09, um pesquisador do Departamento de Cérebro e Ciências Cognitivas (BCS) que dirige o Projeto de Computação Probabilística. "Há uma escassez amplamente reconhecida de pessoas que entendem como modelar bem os dados, "diz ele." Este é um problema dos governos, o setor sem fins lucrativos, e lugares onde as pessoas não podem pagar cientistas de dados. "
Os outros co-autores do artigo são Marco Cusumano-Towner, um EECS Ph.D. aluna; Ulrich Schaechtle, um pós-doutorado em BCS com o Projeto de Computação Probabilística; e Martin Rinard, professor do EECS e pesquisador do Laboratório de Ciência da Computação e Inteligência Artificial.
Modelagem bayesiana
O trabalho usa modelagem bayesiana, um método estatístico que atualiza continuamente a probabilidade de uma variável à medida que mais informações sobre essa variável se tornam disponíveis. Por exemplo, o estatístico e escritor Nate Silver usa modelos baseados em Bayesian para seu popular site FiveThirtyEight. Antes de uma eleição presidencial, os modelos do site fazem uma previsão inicial de que um dos candidatos vencerá, com base em várias pesquisas e outros dados econômicos e demográficos. Essa previsão é a variável. No dia da eleição, o modelo usa essa informação, e pesa os votos recebidos e outros dados, para atualizar continuamente essa probabilidade do potencial de vitória de um candidato.
De forma geral, Os modelos bayesianos podem ser usados para "prever" - prever um valor desconhecido no conjunto de dados - e descobrir padrões nos dados e relacionamentos entre as variáveis. Em seu trabalho, os pesquisadores se concentraram em dois tipos de conjuntos de dados:séries temporais, uma sequência de pontos de dados em ordem cronológica; e dados tabulares, onde cada linha representa uma entidade de interesse e cada coluna representa um atributo.
Conjuntos de dados de série temporal podem ser usados para prever, dizer, tráfego aéreo nos próximos meses ou anos. Um modelo probabilístico analisa pontuações de dados históricos de tráfego e produz um gráfico de série temporal com padrões de tráfego futuros plotados ao longo da linha. O modelo também pode descobrir flutuações periódicas correlacionadas com outras variáveis, como época do ano.
Por outro lado, um conjunto de dados tabular usado para, dizer, pesquisa sociológica, pode conter centenas a milhões de linhas, cada um representando uma pessoa individual, com variáveis que caracterizam a ocupação, salário, localização de casa, e respostas às perguntas da pesquisa. Modelos probabilísticos podem ser usados para preencher as variáveis ausentes, como prever o salário de alguém com base na ocupação e localização, ou para identificar variáveis que se informam, como descobrir que a idade e a ocupação de uma pessoa são preditivas de seu salário.
Os estatísticos veem a modelagem bayesiana como um padrão ouro para construir modelos a partir de dados. Mas a modelagem bayesiana é notoriamente demorada e desafiadora. Os estatísticos primeiro dão um palpite sobre a estrutura e os parâmetros do modelo necessários, confiando em seu conhecimento geral do problema e dos dados. Usando um ambiente de programação estatística, como R, um estatístico então constrói modelos, se ajusta aos parâmetros, verifica os resultados, e repete o processo até que eles encontrem uma compensação de desempenho apropriada que pondere a complexidade e a qualidade do modelo.
A ferramenta dos pesquisadores automatiza uma parte fundamental desse processo. "Estamos dando a um sistema de software uma tarefa que você faria com que um estatístico júnior ou cientista de dados fizesse, "Mansinghka diz." O software pode responder a perguntas automaticamente a partir dos dados - fazendo previsões ou dizendo qual é a estrutura - e pode fazer isso com rigor, relatando medidas quantitativas de incerteza. Esse nível de automação e rigor é importante se estamos tentando tornar a ciência de dados mais acessível. "
Síntese bayesiana
Com a nova abordagem, os usuários escrevem uma linha de código detalhando a localização dos dados brutos. A ferramenta carrega esses dados e cria vários programas probabilísticos, cada um deles representando um modelo bayesiano dos dados. Todos esses modelos gerados automaticamente são escritos em linguagens de programação probabilísticas específicas de domínio - linguagens de codificação desenvolvidas para aplicações específicas - que são otimizadas para representar modelos bayesianos para um tipo específico de dados.
A ferramenta funciona usando uma versão modificada de uma técnica chamada "síntese de programa, "que cria automaticamente programas de computador com dados e uma linguagem para trabalhar. A técnica é basicamente a programação reversa do computador:dado um conjunto de exemplos de entrada-saída, a síntese do programa retrocede, preencher os espaços em branco para construir um algoritmo que produza as saídas de exemplo com base nas entradas de exemplo.
A abordagem é diferente da síntese de programa comum de duas maneiras. Primeiro, a ferramenta sintetiza programas probabilísticos que representam modelos bayesianos para dados, enquanto os métodos tradicionais produzem programas que não modelam dados de forma alguma. Segundo, a ferramenta sintetiza vários programas simultaneamente, enquanto os métodos tradicionais produzem apenas um de cada vez. Os usuários podem escolher quais modelos se adaptam melhor à sua aplicação.
“Quando o sistema faz um modelo, ele cospe um pedaço de código escrito em uma dessas linguagens de programação probabilística de domínio específico ... que as pessoas podem entender e interpretar, "Mansinghka diz." Por exemplo, os usuários podem verificar se um conjunto de dados de série temporal, como o volume de tráfego aéreo, tem variação sazonal, apenas lendo o código, ao contrário dos métodos de aprendizado de máquina e estatísticas de caixa preta, onde os usuários precisam confiar nas previsões de um modelo, mas não podem lê-lo para entender sua estrutura. "
A programação probabilística é um campo emergente na interseção das linguagens de programação, inteligência artificial, e estatísticas. Este ano, O MIT sediou a primeira Conferência Internacional sobre Programação Probabilística, que teve mais de 200 participantes, incluindo os principais participantes da indústria em programação probabilística, como a Microsoft, Uber, e Google.