Manual prático do ciclo de vida dos dados para iniciantes como eu

Uma breve visão das sete etapas que compõem um ciclo de vida da ciência de dados

Tera
Somos Tera
14 min readAug 10, 2020

--

(Adaptação do artigo originalmente publicado aqui, em inglês) Traduzido por Thabata

Photo by Thor Alvis on Unsplash

A ciência de dados está evoluindo rapidamente para ser um dos campos mais importantes da indústria de tecnologia.

Com os rápidos avanços no desempenho computacional, que agora permitem a análise de conjuntos de dados massivos, podemos descobrir padrões e ideias sobre o comportamento da pessoa usuária e as tendências mundiais em uma extensão sem precedentes.

(Imagem que ilustra o ciclo de vida da ciência de dados, passando por todos os tópicos que vamos apresentar separadamente neste artigo).

Com as mudanças no campo da ciência de dados e nos campos relevantes, uma pergunta comum que ouvi de amigos é: “a ciência de dados parece ser mesmo muito legal, mas como eu começo?”. E o que começou como uma tentativa de explicar a um amigo que queria começar com os projetos do Kaggle culminou neste post.

Aqui, eu darei uma breve visão geral das sete etapas que compõem um ciclo de vida da ciência de dados — a etapa de entendimento dos negócios, da mineração de dados, limpeza de dados, exploração de dados, engenharia de recursos, modelagem preditiva e visualização de dados.

Para cada etapa, também fornecerei alguns recursos que considero úteis em minha experiência.

Existem inúmeras interpretações sobre o que realmente é o ciclo de vida de dados (e sobre até a própria ciência de dados), mas vou demonstrar o entendimento que eu construí com minhas leituras e experiências até agora.

A ciência de dados é um campo em rápida evolução e sua terminologia está evoluindo rapidamente com ele.

Se você não concordar com algum ponto que apresentei aqui, fale pelos comentários. Quero saber a sua opinião!

Primeira etapa: o entendimento comercial

Os cientistas de dados são as pessoas que continuam perguntando o porquê das coisas. São as pessoas que desejam garantir que todas as decisões tomadas na empresa sejam suportadas por dados concretos e garantidas (com alta probabilidade) de obter bons resultados.

Antes que você possa iniciar um projeto de ciência de dados, é essencial que você entenda o problema que está tentando resolver.

(“Quando você entrevista um cientista de dados… ‘Wow! Você respondeu cada uma das perguntas perfeitamente. Como você fez isso?’. ‘Bem, eu me encontrei com cada pessoa que foi entrevistada por você nos últimos 5 anos e coletei as perguntas feitas por você, correlacionando-as com os parâmetros da entrevista. Aí eu criei um sistema que prevê a pergunta exata que você vai fazer, com 85% de previsão!’. ‘Wow! Uma engenharia desenvolvida impressionante. Mas eu não posso contratar você, por questões éticas’. ‘Ah, não se preocupe. Com essa oportunidade eu estava só testando o meu sistema de previsão’”).

De acordo com o blog do Microsoft Azure, normalmente usamos a ciência de dados para responder a cinco tipos de perguntas:

  1. Quanto ou quantos? (Regressão);
  2. Qual categoria? (Classificação);
  3. Qual grupo? (Agrupamento);
  4. Isso está ficando estranho? (Detecção de anomalia);
  5. Qual opção deve ser adotada? (Recomendação).

Nesse estágio, você também deve identificar os objetivos centrais do seu projeto, identificando as variáveis ​​que precisam ser previstas.

Se for uma regressão, pode ser algo como uma previsão de vendas. Se for um cluster, pode ser um perfil de cliente. Compreender o poder dos dados e como você pode utilizá-los para obter resultados para os seus negócios, fazendo as perguntas certas, é mais uma arte do que uma ciência; e fazer isso bem vem com muita experiência.

Um atalho para obter essa experiência é ler o que as outras pessoas têm a dizer sobre o tópico, e é por isso que vou sugerir vários livros para começar:

Começando por: Data Science for Business e Todo mundo mente: Big Data, novos dados e o que a Internet pode nos dizer sobre quem realmente somos.

Segunda etapa: a mineração de dados

Agora que você definiu os objetivos do seu projeto, é hora de começar a coletar os dados.

A mineração de dados é o processo de coleta de dados de diferentes fontes.

Algumas pessoas tendem a agrupar a recuperação e limpeza de dados, mas cada um desses processos é uma etapa tão substancial, portanto, eu decidi separá-los.

Nesse estágio, algumas das perguntas que vale a pena considerar são: quais dados eu preciso para o meu projeto? Onde eles vivem? Como posso obtê-los? Qual é a maneira mais eficiente de armazenar e acessar tudo isso?

(“Seu danado, eu ouvi dizer que você gosta da mineração de dados… Então eu coloquei dados na database para que você mine o dado enquanto você tá olhando pro dado”).

Se todos os dados necessários para o projeto forem empacotados e entregues a você, você ganhou na loteria.

Na maioria das vezes, encontrar os dados certos exige tempo e esforço.

Se os dados residem em bancos de dados, seu trabalho é relativamente simples — você pode consultar os dados relevantes usando consultas SQL ou manipulá-los usando uma ferramenta de quadro de dados como o Pandas.

No entanto, se seus dados não existirem em um conjunto de dados, você precisará lapidá-los. Beautiful Soup, por exemplo, é uma biblioteca popular usada para vasculhar as páginas da Web em busca de dados.

Se você trabalha com um aplicativo e deseja acompanhar o engajamento e as interações dos usuários, existem inúmeras ferramentas que podem ser integradas ao aplicativo para que você possa começar a obter dados valiosos dos clientes.

O Google Analytics, por exemplo, permite definir eventos personalizados no aplicativo que podem ajudá-lo a entender como seus usuários se comportam. Assim, você pode coletar os dados correspondentes.

Nessa etapa, recomendo: MySQL, Beautiful Soup, Google Analytics para Firebase.

Terceira etapa: a limpeza de dados

Agora que você obteve todos os seus dados, passamos à etapa mais demorada de todas: limpar e preparar os dados.

Isso é especialmente verdadeiro em projetos de Big Data, que geralmente envolvem terabytes de dados para trabalhar.

De acordo com entrevistas com cientistas de dados, esse processo (também conhecido como “trabalho de zelador de dados”) geralmente pode levar de 50 a 80% do tempo. Então, o que exatamente isso implica e por que demora tanto?

(“Não foi isso que eu quis dizer quando eu falarei que precisávamos melhorar a nossa limpeza de dados!”).

A razão pela qual esse processo é demorado é simplesmente o fato de existirem tantos cenários possíveis que podem exigir “limpeza”. Por exemplo, os dados também podem ter inconsistências na mesma coluna, o que significa que algumas linhas podem ser rotuladas como 0 ou 1 e outras podem ser rotuladas como “não” ou “sim”.

Os tipos de dados também podem ser inconsistentes — alguns dos 0s podem ser inteiros, enquanto outros podem ser cadeias de caracteres. Se estivermos lidando com um tipo de dados categóricos com várias categorias, algumas delas podem ter erros de ortografia ou ter casos diferentes, como categorias para homens e mulheres.

Este é apenas um subconjunto de exemplos em que você pode ver inconsistências e é importante capturá-las e corrigi-las nesta fase.

Uma das etapas que muitas vezes são esquecidas nesse estágio, causando muitos problemas posteriormente, é a presença de dados ausentes.

Dados ausentes podem gerar muitos erros na criação e no treinamento do modelo de Machine Learning. Uma opção é ignorar as instâncias que possuem valores ausentes. Dependendo do seu conjunto de dados, isso pode não ser realista se houver muitos dados ausentes.

Outra abordagem comum é usar algo chamado imputação média, que substitui os valores ausentes pela média de todas as outras instâncias. Isso nem sempre é recomendado porque pode reduzir a variabilidade dos seus dados, mas em alguns casos isso faz sentido.

Pesquise sobre: Pandas, Dplyr, Cleaning Dirty Data.

Quarta etapa: a exploração de dados

Agora que você tem um conjunto limpo de dados, você está pronto para finalmente começar sua análise.

O estágio de exploração de dados é como o brainstorming da análise de dados. É aqui que você entende os padrões dos seus dados. Você pode envolver, puxar e analisar um subconjunto aleatório dos dados usando o Pandas, traçar um histograma ou uma curva de distribuição para ver a tendência geral ou até criar uma visualização interativa que permite mergulhar em cada ponto de dados e explorar a história por trás dos outliers.

(“Muitos dados para analisar… Precisamos de mais dados! #sqn”).

Usando todas essas informações, você começa a formar hipóteses sobre seus dados e o problema que está enfrentando. Se você estava prevendo as pontuações dos alunos, por exemplo, poderia tentar visualizar a relação entre pontuações e as horas de sono deles. Se você estivesse prevendo os preços dos imóveis, talvez pudesse plotar os preços como um mapa de calor em um gráfico espacial para ver se é possível detectar alguma tendência…

Há um ótimo resumo de ferramentas e abordagens na página da Wikipedia para análise exploratória de dados.

Veja: Análise Exploratória de Dados.

Quinta etapa: a engenharia de recursos

No Machine Learning, um recurso é uma propriedade ou atributo mensurável de um fenômeno que está sendo observado.

Se estivéssemos prevendo a pontuação de um aluno, um recurso possível é a quantidade de sono que ele recebe. Em tarefas de previsão mais complexas, como reconhecimento de caracteres, os recursos podem ser histogramas contando o número de pixels pretos.

De acordo com Andrew Ng, um dos principais especialistas nas áreas de Machine Learning: “a criação de recursos é difícil, demorada e exige conhecimento especializado. O Machine Learning aplicado é basicamente a engenharia de recursos”.

A engenharia de recursos é o processo de usar o conhecimento do domínio para transformar seus dados brutos em recursos informativos que representam o problema de negócios que você está tentando resolver.

Esse estágio influenciará diretamente a precisão do modelo preditivo que você vai construir no próximo estágio.

Normalmente, realizamos dois tipos de tarefas na engenharia de recursos: seleção e construção de recursos.

A seleção de recursos é o processo de reduzir os recursos que adicionam mais ruído do que informações. Isso geralmente é feito para evitar o erro da dimensionalidade, que se refere ao aumento da complexidade resultante de espaços de alta dimensão (ou seja, muitos recursos).

Não vou detalhar muito aqui, porque esse tópico pode ser bastante pesado, mas geralmente usamos o métodos de filtro (aplicar medidas estatísticas para atribuir pontuação a cada recurso), métodos de wrapper (enquadram a seleção de recursos como um problema de pesquisa e usam uma heurística para executar a pesquisa) ou métodos incorporados (use o aprendizado de máquina para descobrir quais recursos contribuem melhor para a precisão).

A construção de recursos envolve a criação de novos recursos a partir dos que você já possui (e possivelmente o abandono dos recursos antigos).

Um exemplo de quando você pode fazer isso é quando você tem uma variável contínua, mas o conhecimento do seu domínio informa que você realmente precisa apenas de uma variável de indicador com base em um limite conhecido.

Por exemplo, se você tem um recurso para a idade, mas o seu modelo só se importa se uma pessoa é adulto ou menor, você pode colocá-lo no limite de 18 e atribuir categorias diferentes a instâncias acima e abaixo desse limite. Você também pode mesclar vários recursos para torná-los mais informativos, obtendo sua soma, diferença ou produto. Se você estava prevendo as pontuações dos alunos e tinha recursos para o número de horas de sono de cada um em cada noite, convém criar um recurso que apresente a média de sono que os alunos tiveram.

Leia sobre: A introdução aos métodos de seleção de recursos, Seleção de recursos com o Sklearn, Práticas recomendadas para engenharia de recursos.

Sexta etapa: a modelagem preditiva

A modelagem preditiva é onde o Machine Learning finalmente entra em seu projeto de ciência de dados.

Uso o termo modelagem preditiva porque acho que um bom projeto não é aquele que apenas treina um modelo e fica obcecado com a sua precisão, mas também usa métodos e testes estatísticos abrangentes para garantir que os resultados do modelo realmente façam sentido e sejam significativos.

Com base nas perguntas feitas no estágio de entendimento dos negócios, é aqui que você decide qual modelo escolher para o seu problema.

Essa nunca é uma decisão fácil e não existe uma resposta certa. O modelo (ou modelos, e você deve sempre testar vários) que você acaba treinando dependerá do tamanho, tipo e qualidade dos seus dados, quanto tempo e recursos computacionais você deseja investir e o tipo de saída você pretende derivar.

Existem algumas dicas diferentes disponíveis online, com um fluxograma que ajuda você a decidir o algoritmo correto com base no tipo de classificação ou problema de regressão que você está tentando resolver. As duas que eu realmente gosto são as dicas do Microsoft Azure e as dicas do SAS.

(Exemplo de fluxograma para escolher o modelo que faz sentido para o seu processo).

Depois de treinar seu modelo, é fundamental que você avalie o sucesso dele.

Um processo chamado validação cruzada k-fold é comumente usado para medir a precisão de um modelo. Envolve separar o conjunto de dados em k grupos de instâncias de tamanhos iguais, treinando em todos os grupos, exceto um, e repetindo o processo com diferentes grupos deixados de fora. Isso permite que o modelo seja treinado em todos os dados em vez de usar uma divisão típica de teste.

(“‘Esse é o seu sistema de Machine Learning?’. ‘Sim! Você coloca seus dados em cima dessa pilha linear de álgebra, e aí você coleta as respostas do outro lado’. ‘Mas e se suas respostas estiverem erradas?’. ‘Só mexer na pilha até que elas comecem a parecer certas!’”).

Para modelos de classificação, geralmente testamos a precisão usando o PCC (classificação percentual correta), juntamente com uma matriz de “confusão” que divide os erros em falsos positivos e falsos negativos.

Gráficos como curvas ROC, que são a verdadeira taxa positiva plotada contra a taxa de falsos positivos, também são usados ​​para comparar o sucesso de um modelo.

Para um modelo de regressão, as métricas comuns incluem o coeficiente de determinação (que fornece informações sobre a qualidade do ajuste de um modelo), erro quadrático médio (MSE) e erro absoluto médio.

Nessa etapa, confira: Curso de Udacity de Machine Learning, Fundamentos dos algoritmos de Machine Learning, Avaliação de modelos de Machine Learning.

Sétima (e última) etapa: a visualização de dados

A visualização de dados é um campo complicado, principalmente porque parece simples, mas poderia ser uma das coisas mais difíceis de fazer bem feito.

Isso ocorre porque o processo combina os campos da comunicação, psicologia, estatística e arte, com o objetivo final de comunicar os dados de maneira simples, porém de forma eficaz e visualmente agradável.

Depois de extrair as ideias pretendidas do seu modelo, você deve representá-las de uma maneira que os diferentes principais interessados ​​no projeto possam entender.

(Exemplo de dados coletados sobre a dark web).

Novamente, este é um tópico que pode ser um post de blog por conta própria; portanto, em vez de me aprofundar no campo da visualização de dados, darei alguns pontos de partida.

Eu, pessoalmente, adoro trabalhar com o pipeline de análise e visualização em um notebook Python interativo como o Jupyter, no qual posso ter meu código e visualizações lado a lado, permitindo uma rápida interação com bibliotecas como Seaborn e Bokeh.

Ferramentas como o Tableau e o Plotly tornam muito fácil arrastar e soltar seus dados na visualização e manipulá-los para obter visualizações mais complexas. Se você está criando uma visualização interativa para a Web, não há melhor ponto de partida do que o D3.js.

Confira: Uma visão geral de todos os cursos de visualização de dados na Internet, Tableau, Plotly, Seaborn, Bokeh, D3.js.

Agora retorne à etapa do entendimento comercial

Ufa. Agora que você passou por todo o ciclo de vida, é hora de voltar à prancheta.

Lembre-se, este é um ciclo e, portanto, é um processo iterativo. É aqui que você avalia como o sucesso do seu modelo está relacionado ao seu entendimento comercial original. Ele resolve os problemas identificados? A análise produz alguma solução tangível?

Se você encontrou novos insights durante a primeira iteração do ciclo de vida (e eu garanto que você o fará), agora você pode inserir esse conhecimento na próxima iteração para gerar insights ainda mais poderosos e liberar o poder dos dados para obter resultados fenomenais para seu negócio ou projeto.

O que fazer depois de definir seu pipeline de ciência de dados?

A última etapa da fase de construção é executar o plano de construção do produto.

Muitos engenheiros e engenheiras de software provavelmente estão familiarizados com as tentativas e dificuldades de criar um software complicado, mas podem não estar familiarizados com a dificuldade de criar um software que lide com dados de qualidade duvidosa.

Os estatísticos e estatísticas, por outro lado, sabem como é ter dados ruins, mas podem ter pouca experiência na criação de software de alta qualidade. Da mesma forma, indivíduos em diferentes funções relacionadas ao projeto, cada um dos quais pode possuir várias experiências e treinamento, esperam e se preparam para coisas diferentes.

Se você é estatístico, conhece dados ruins e respira a importância dos resultados.

Por outro lado, talvez você não tenha muita experiência na criação de software para negócios, principalmente software de produção. Você deve consultar os engenheiros de software com experiência prática para aprender como melhorar a robustez do seu software.

Se você é um engenheiro de software, sabe como é o ciclo de vida do desenvolvimento e como testar o software antes da implantação e entrega. Mas você pode não conhecer os dados e, por mais que seja bom em design e desenvolvimento de software, os dados acabarão quebrando seu aplicativo de uma maneira que nunca lhe ocorreu. Isso requer novos padrões de pensamento ao criar software e um novo nível de tolerância a erros e bugs, porque eles acontecem com muito mais frequência.

Você deve consultar estatísticos com boa experiência em prever e manipular dados problemáticos, como discrepâncias, valores ausentes e valores corrompidos.

Se você está iniciando ciência de dados, sem muita experiência em estatística ou engenharia de software, qualquer pessoa com alguma experiência provavelmente poderá lhe dar alguns conselhos sólidos, se você puder explicar seu projeto e seus objetivos para eles. Como iniciante, você tem um dever duplo, nesta fase do processo, de compensar a falta de experiência.

Se você é apenas um membro de uma equipe para os propósitos deste projeto, a comunicação e a coordenação são fundamentais. Não é necessário que você saiba tudo o que está acontecendo dentro da equipe, mas é necessário que as metas e expectativas sejam claras e que alguém esteja gerenciando a equipe como um todo.

O plano deve conter vários caminhos e opções, tudo dependendo dos resultados, metas e prazos do projeto.

Não importa quão bom seja um plano, sempre há uma chance de ser revisado à medida que o projeto avança.

Mesmo que você tenha pensado em todas as incertezas e esteja ciente de todos os resultados possíveis, coisas fora do escopo do plano podem mudar. O motivo mais comum para um plano precisar mudar é o surgimento de novas informações, de uma fonte externa ao projeto (e um ou mais caminhos do plano mudam ou os próprios objetivos mudam).

À medida que o projeto avança, você geralmente vê mais e mais resultados acumulados, dando a você a chance de garantir que eles atendam às suas expectativas.

De um modo geral, em um projeto de ciência de dados envolvendo estatística, as expectativas são baseadas em uma noção de significância estatística ou em algum outro conceito de utilidade ou aplicabilidade prática desses resultados ou de ambos.

O significado estatístico e a utilidade prática geralmente estão intimamente relacionados e certamente não são mutuamente exclusivos.

Como parte do seu plano para o projeto, você provavelmente deve incluir uma meta de alcançar certa precisão ou significância nos resultados de suas análises estatísticas.

O cumprimento dessas metas pode ser considerado um sucesso para o projeto.

Conclusão

A ciência de dados ainda carrega a aura de um novo universo.

A maioria de seus componentes — estatística, desenvolvimento de software, solução de problemas com base em evidências e assim por diante — descende diretamente de campos bem estabelecidos e antigos, mas a ciência de dados parece ser uma nova montagem dessas peças em algo novo.

O núcleo da ciência de dados não se preocupa com implementações específicas de bancos de dados ou linguagens de programação, mesmo que sejam indispensáveis para os profissionais.

O núcleo é a interação entre o conteúdo dos dados, os objetivos de um determinado projeto e os métodos analíticos de dados usados para atingir esses objetivos.

--

--

Tera
Somos Tera

Um novo modelo de educação com foco nas principais habilidades para a economia digital: www.somostera.com