O que uma análise de pesquisas com data scientists revela
Apesar do hype em torno de Deep Learning e outras tecnologias, grande maioria dos profissionais atua em análise estatística rotineira e dados em pequena e média escala
A quantidade de conteúdo, papers acadêmicos, experimentos e código em Data Science que chega ao nosso conhecimento todos os dias pode ser opressora.
Pode-se ter a impressão de que o mercado está trabalhando no estado da arte em Deep Learning, implementando modelos de ponta em Visão Computacional ou Processamento de Linguagem Natural ou lidando com Estatística e Matemática Avançada no dia a dia.
Enquanto isso, a startup ou empresa em que atuamos parece estar atrasada, em uma eterna limpeza de dados proveniente de cadastros manuais mal preenchidos ou na criação de relatórios de Business Intelligence (BI) que o negócio insiste em chamar de Data Science.
Pesquisas com cientistas de dados mostram que, na verdade, a realidade para a maioria dos profissionais e aspirantes é a mesma de nossa startup ou empresa hipotética, em vez daquela que lembra grandes players e instituições, como Google, DeepMind, MIT e similares.
Paige Bailey, uma Product Manager em Machine Learning na Microsoft (anteriormente na Google e DeepMind), realizou um belo trabalho ao compilar e analisar outras pesquisas já realizadas com cientistas de dados de todo o mundo e revelar esses insights.
A compilação feita por ela é recente e considerou diversas bases de dados brutas. As percepções que traz nos ajudam a nos sentirmos “em casa” com nossos Jupyter Notebooks às vezes desleixados e com nossas Análises Exploratórias “feijão com arroz”:
os data scientists respondentes das pesquisas analisadas estão, na grande maioria, trabalhando com análises exploratórias (não com Machine Learning ou implementação de soluções em produção);
usam conjuntos de dados de pequeno a médio porte para isso (e não dados provenientes de grandes clusters computacionais ou de data lakes em nuvem);
trabalham com arquivos simples, armazenados em máquinas locais (o bom e velho CSV, um JSON, tabelas exportadas de bancos de dados);
atuam em equipes pequenas, de zero a cinco profissionais;
não têm grande rigor com boas práticas de desenvolvimento de software ou Software Development Life Cycle (SLDC), como controle de versão do código;
a maioria não vem de áreas relacionadas à Ciência da Computação e têm experiência mínima em programação;
usam, “esmagadoramente”, ferramentas de código aberto;
dos que já trabalham em algum projeto de Machine Learning, a maioria está em estágios iniciais e usando métodos tradicionais (como processamento em CPUs e não em GPUs, por exemplo).
O primeiro ponto é interessante. Apesar do estigma ser o de que data scientists passam a maior parte do tempo limpando e preparando dados (isso também nasceu de pesquisas, como veremos), a atividade principal da maioria é, na verdade, EDA (Exploratory Data Analysis).
Considerada uma das atividades preferidas e “divertidas” por muitos cientistas de dados, EDA é a etapa em que é realizado o entendimento dos dados, por meio de Estatística Básica (média, mediana, variância etc.), visualizações e, em alguns casos, alguma narrativa, para compreensão de pessoas de negócio, por exemplo.
Dizer que a maioria dos data scientist faz EDA significa dizer, também, que não estão ocupados com implementação de código em produção e não estão lidando com otimização de algoritmos de Machine Learning (ML). Ou seja, trabalham muito mais em tarefas ad-hoc e de momento e não na construção e manutenção de código complexo e de longo prazo.
(Relembrando outro artigo desta Newsletter, “Um modelo mental para Data Science entre Análise e Engenharia”, a maioria estaria muito mais no espectro da Análise do que no da Engenharia.)
O segundo e terceiro pontos revelam que a maioria dos profissionais não está lidando com dados na ordem de terabytes ou petabytes e que eles também não vêm de grandes clusters de computação ou repositórios em nuvem.
Provavelmente, boa parcela dos respondentes de pesquisas ainda trabalha sobre tabelas de bancos de dados relacionais de clientes, vendas ou similares, que ficam na casa das milhares de linhas.
Bailey comenta que arquivos CSV, JSON e tabelas exportadas de bancos de dados predominam, enquanto data lakes e bancos de dados No-SQL raramente são usados (ou nunca usados).
Ou seja, uma realidade um tanto distante de termos como Hadoop (armazenamento e processamento distribuído de grandes conjuntos de dados), BigQuery (data warehouse do Google) ou RedShift (data warehouse da Amazon), que volta e meia são encontrados em descrições de vagas ou artigos da área.
O quarto ponto mostra que as equipes de dados ainda são pequenas, em que todos se conhecem, trabalham juntos e provavelmente fazem um pouco de tudo, em vez de grandes times, os quais contaram com especialistas ou uma gama de outros profissionais no entorno (como Data Product Managers, MLOps etc.).
O quinto e o sexto pontos têm a ver com a democratização da área. Cientistas de dados não vem apenas da Estatística ou Computação, mas, cada vez mais, de uma ampla gama de atividades.
Dos respondentes, muitos vêm de domínios mais exatos (ciências físicas, naturais ou biológicas), frequentemente tendo obtido um diploma de graduação.
Isso explica por que a maioria programa há pouco tempo ou programa apenas para as atividades práticas da Ciência de Dados, sem conhecimento em boas práticas de desenvolvimento de software ou conhecimento de paradigmas de programação, por exemplo.
Pense-se, como exemplo, no caso de um biólogo que aprende Estatística em R na graduação e depois migra para a Ciência de Dados, vai para Python, Jupyter Notebooks e o ciclo de atividades do dia a dia: buscar, limpar e preparar dados, analisá-los, talvez comunicar achados a decisores de negócio ou implementar algum código em produção.
O último ponto mostra que Machine Learning (ou, ainda mais, Deep Learning) não é um trabalho significativo entre a maioria dos cientistas de dados, e que implementações no campo são recentes e tradicionais, muitas delas feitas em Scikit-Learn.
Nada de algoritmos com nomes bonitos complicados ou uma floresta deles trabalhando de forma orquestrada, como vemos em relatos que costumam chegar de grandes empresas que ditam tendências na área, como AirBnb ou Facebook.
O compilado feito por Bailey resume, ainda, outras características e algumas curiosidades dos cientistas de dados atuais.
A maioria dos respondentes de pesquisas (60%) são data scientists entre 22 e 34 anos, com 20% tendo mais do que 40 anos.
Jupyter Notebooks (originais ou na versão JupyterLab) são usados pela maioria expressiva (74,1%) dos respondentes de pesquisas. Em seguida, vem editores de códigos ou IDEs, como VS Code, Pycharm e o RStudio (32%, reunidos).
Mesmo com ferramentas como Colab e Binder, que permitem trabalhar com notebooks online e compartilhá-los, a maioria ainda trabalha em sua própria máquina, carregando dados para a memória RAM.
Entre quem tem recursos financeiros para gastar com armazenamento e processamento de dados em nuvem, muitos usam ferramentas de BI e não da Ciência de Dados, como Tableau (30%) e Power BI (22%).
Esse público, apesar de ser o que lida com dados mais massivos e críticos, também é um dos que passa mais longe de Deep Learning, focando em ML tradicional. Apenas metade dele (49%) usa GPUs, para se ter ideia.
Bailey fez, também, uma relação por segmentos de usuários (coortes), com base em sua experiência na área, uma breve descrição da “persona” de cada segmento e IDEs mais usadas por cada um.
A segmentação fornece uma boa estrutura, dos aprendizado em estágios mais iniciais aos profissionais mais avançados, de diferentes perfis e backgrounds de quem lida com dados, o que pode inclui não apenas cientistas, mas também analistas, engenheiros e outros.
A relação é a seguinte:
Iniciante (novo em programação):
Descrição: novos em programação, ciência de dados e aprendizado de máquina. Exemplo canônicos seriam estudantes do ensino médio e universitários. A principal forma de aprendizado é conteúdo em vídeo.
IDEs: notebooks hospedados (exemplo: Colab) ou na máquina (Jupyter Notebooks).
Iniciantes (engenheiros de software atuais, novos em ML):
Descrição: novos em ciência de dados e ML, apenas começando a aprender. Geralmente, vêm de um background de desenvolvimento de software.
IDEs: PyCharm, VS Code, Visual Studio, entre outros.
Analistas de informação:
Descrição: usa dados para ajudar a entender problemas de negócios ou perguntas de pesquisa. Background de estatísticas mínimo (se houver).
IDEs: Excel ou Google Planilhas.
Cientista de dados - Negócios, EDA:
Descrição: usa dados para ajudar a entender problemas de negócios, logística ou cadeia de suprimentos.
IDEs: Jupyter/JupyterLab, RStudio.
Cientista de dados - Acadêmico, EDA:
Descrição: usa dados para ajudar a entender problemas nas ciências físicas, biológicas, sociais ou naturais.
IDEs: MATLAB, Jupyter/JupyterLab, RStudio.
Cientista de dados - Negócios, ML tradicional:
Descrição: apenas começando a usar métodos de aprendizado de máquina para resolver problemas de negócios e para complementar técnicas de análise exploratória de dados.
IDEs: Jupyter/JupyterLab, RStudio.
Pesquisador de ML - Acadêmico, ML tradicional:
Descrição: apenas começando a usar métodos de aprendizado de máquina para resolver questões de pesquisa e para complementar técnicas de análise exploratória de dados.
IDEs: Jupyter/JupyterLab, MATLAB, RStudio.
Pesquisador de Deep Learning (pequena escala):
Descrição: Semelhante ao segmento de aprendizado de máquina tradicional; mais confortável com conjuntos de dados de tamanho médio e máquinas locais.
IDEs: Jupyter/JupyterLab, PyCharm.
Desenvolvedor de framework de ML ou desenvolver de API de Deep Learning de alto nível:
Descrição: autores de scikit-learn, Keras, PyTorch Lightning e outras ferramentas semelhantes.
IDEs: Jupyter/JupyterLab, PyCharm ou VS Code.
Engenheiro de Deep Learning (grande escala):
Descrição: participantes do Sistema de Processamento de Informação Neural (NeurIPS), Conferência Internacional de Machine Learning (ICML) e Conferência Internacional sobre Representações de Aprendizagem (ICLR); são pesquisadores contratados na OpenAI, Google Brain etc.
IDEs: Jupyter/JupyterLab, PyCharm ou VS Code.
Desenvolvedor de framework de Deep Learning:
Descrição: autores de APIs de baixo nível para TensorFlow, JAX e PyTorch; estruturas de treinamento distribuídas, como Ray; e similares.
IDEs: PyCharm ou VS Code.
MLOps:
Para chegar a essas constatações, Bailey se baseou em outras cinco pesquisas:
A descrição que ela faz do trabalho de coleta e análise dos dados serve como um bom case de Data Science na prática. Foram usados dados da pesquisa Kaggle para definir clusters de usuários. Em seguida, os clusters foram validados com dados qualitativos da pesquisa anaconda, além de postagens em blogs e mídias sociais.
A metodologia na íntegra, os dados e constatações da “pesquisa de pesquisas” feita por Bailey podem ser conferidas no repositório “Kaggle Survey Spelunking”, no Github da autora.
A Kaggle State of Data Science e ML, utilizada por Bailey, é um bom retrato da comunidade de Data Science e um caso interessante de pesquisa.
A coleta de dados é realizada pelo Kaggle, uma das maiores comunidades de competições (e aprendizado) em Data Science e Machine Learning do mundo, com regras, bases de dados para análises e até prêmios em dinheiro.
A pesquisa foi realizada em 2017, 2018, 2019 e 2020. No ano passado, coletou 20.036 respostas de data scientists de diversos países.
O mais interessante é que os dados brutos são disponibilizados para que a comunidade possa explorar, criar análises e narrativas a partir das informações.
Este ano, o Kaggle pagou 30 mil dólares em prêmios, ao todo, para quem criasse a melhor narrativa sobre os dados brutos coletados. A lista dos trabalhos vencedores é divulgada a quem quiser conhecê-los.
Além da interpretação de usuários da comunidade, para quem quiser uma visão consolidada da pesquisa, pode conferir o relatório produzido pelo próprio Kaggle.
O recorte do relatório é apenas com cientistas de dados profissionais (13% dos 20 mil respondentes). Algumas constatações que saltam aos olhos são:
a área de Data Science continua com um grande desbalanceamento de gêneros, sendo que 81,9% dos respondentes se identificam como masculinos;
a grande maioria tem menos de 35 anos, com crescimento de 5% sobre a pesquisa do ano anterior entre quem tem 18 a 21 anos;
a maioria dos respondentes (21,8% ou um quinto) é da Índia — onde há uma comunidade muito forte de Ciência de Dados — seguida de EUA (14,5%), Outros (6,7%, agrupamento de países que tiveram menos de 50 respondentes) e, em quarto, o Brasil (4,6%);
mais da metade (51,1%) tem mestrado, com quase um quarto (24,2%) tendo bacharelado e 17,2% sendo doutores;
Coursera é a principal plataforma de aprendizado para a maioria (62,9%);
a maioria (27,9%) dos data scientists programa há apenas 3 a 5 anos, no cenário mundial, enquanto nos EUA a maioria (29,2%) já programa há um período maior, de 5 a 10 anos;
enquanto no mundo o background de Machine Learning da maioria (21,4%) é de apenas 1 a 2 anos, nos EUA, para a maioria (19,6%), é de 5 a 10 anos.
A lista de insights é longa. Passa por tecnologia usada pelos cientistas de dados, métodos e algoritmos utilizados (regressão linear ou logística vencem), frameworks (Scikit-learn vence) e, é claro, salários ao redor do mundo, uma informação bastante divulgada e comparada em vários sites especializados.
Comentamos anteriormente que EDA predomina entre os cientistas de dados, quando o lugar comum é pensarmos que a principal tarefa desses profissionais é limpeza e preparação de dados.
O que ocorre com a pesquisa Kaggle é que ela não analisa etapas de Data Science (busca de dados, preparação, análise, comunicação ou implementação de soluções) e sim tarefas (análise exploratória, construção de modelos de ML etc.). Nesse caso, a limpeza e preparação de dados provavelmente já está incluída em cada tarefa.
Na prática, de qualquer forma, raramente a EDA é dissociada de limpeza e tratamento de dados. Muitas vezes, a análise é um processo que itera entre limpeza e tratamento, a fim de refinar os dados para resultados mais claros.
O que, porém, marcou a limpeza de dados como a principal tarefa de data scientists foi um artigo da Forbes, em 2016. Nele, foi citada outra pesquisa, da Crowdflower, daquele ano, somando-se as etapas de coleta de conjuntos de dados (19%) e limpeza e organização de dados (60% do tempo).
Até alguma “arqueologia” já foi feita tentando desvendar e discordar do marco, que hoje estigmatiza a Ciência de Dados como uma um trabalho que significa 80% de “trabalho chato” (limpeza e preparação) e 20% de diversão (análise).
Como revelado por Bailey, EDA é “esmagadoramente” a principal atividade de cientistas de dados, mesmo que dependa, muitas vezes, da coleta, limpeza e organização dos dados de forma iterativa.
Há muitas pesquisas sobre Ciência de Dados disponíveis para consultas. O interessante, para aspirantes ou cientistas de dados em início de carreira, é procurar os dados brutos e os documentos que explicam as metodologias para entender como foram feitas.
Os casos trazidos neste artigo, tanto a análise “Kaggle Survey Spelunking”, de Bailey, como a pesquisa do próprio Kaggle, são ricos porque expõe esses dois elementos, bem como interpretações ou insights dos dados analisados.
Além disso, por mais que capte informações aleatoriamente de todo o mundo, de estudantes em um primeiro contato com a Ciência de Dados até profissionais avançados, a pesquisa do Kaggle reúne uma boa quantidade de respondentes, provavelmente mais significativa do que outras pesquisas até mais setoriais e focadas.
(Inferência estatística é um assunto cheio de armadilhas, como comentamos em “Devemos muito aos Testes A/B”, e qualquer levantamento mais rigoroso requereria muito mais conhecimento de quem é toda essa comunidade de Ciência de Dados e Machine Learning mundial, algo mutante, provavelmente crescente e impossível de capturar com precisão.)
O recorte que trouxemos serve tanto como conhecimento dessa comunidade como um bom case de análise que qualquer cientista de dados pode tomar como exemplo. Vale acompanhar outros levantamentos do próprio Kaggle (e, quem sabe, competir na interpretação dos dados) para saber como o cenário da Ciência de Dados está evoluindo a cada ano.
Artigo escrito por Rogério Kreidlow, jornalista, que gosta de observar a tecnologia em relação a temas amplos, como política, economia, história e filosofia.