10 passos para criar um projeto de ciência de dados | Data Science

Rômulo Moura
comunidadeds
Published in
8 min readJul 24, 2022
Photo by Mika Baumeister on Unsplash

Se você é um entusiasta iniciante de ciência de dados assim como eu, em algum momento ja deve ter se deparado com os seguintes questionamentos:

  • Como estruturar e organizar meu projeto de ciência de dados?
  • O que eu faço após limpar os dados? Já devo aplicar machine learning?

Caso você esteja com dúvidas parecidas com esta, seus problemas acabaram, este artigo poderá lhe ajudar. Aqui você aprenderá 10 passos que todo cientista de dados segue (a depender do escopo do projeto) ao desenvolver seu projeto de ciência de dados.

Este guia eu aprendi com o mestre Meigaron da Comunidade DS, confira: https://www.youtube.com/c/SejaUmDataScientist

Vale lembrar que cada etapa é um universo a parte no área de ciência de dados, e é impossível em um único artigo explicar detalhes de cada uma delas. Utilize as palavras-chaves contidas neste artigo e pesquise mais afundo como aplicar as dicas. Mais artigos surgirão no futuro e talvez dependendo da data que você esteja lendo isso, tudo está explicado em vários artigos diferentes neste mesmo blog.

Passo 00: Entenda o problema e planeje sua solução

Antes de abrir um notebook no jupyter lab e sair cuspindo código python é preciso entender o problema de negócio que você está tentando resolver.

Para entender o problema responda 4 perguntas:

  1. Qual a motivação do projeto?
  2. Qual a causa raiz do problema?
  3. Quem é o dono do problema? Para quem você planejará uma solução, exemplos: time de marketing, CEO, CFO, time de vendas.
  4. Qual o formato da solução? Exemplos: csv, email semanal, dashboard.

No planejamento da sua solução após entender o problema você deve:

  1. Definir entradas e saídas.

Entrada é o que você recebeu para criar o projeto, normalmente um problema de negócio e um conjunto de dados. A saída é o que você entregará como resultado do seu trabalho, exemplos: um csv com as colunas client_id e is_churn, indicando para cada cliente se ele vai ou não entrar em churn (deixar de ser cliente) nos próximos 4 meses. As vezes um relátorio detalhado a depender do problema de negócio também é muito bem vindo.

2. Definir tarefas.

Neste ponto você definirá as tarefas que precisa fazer para chegar ao resultado final. As tarefas são etapas para responder perguntas de negócio que você deve criar, caso não receba pronto. Exemplo em um projeto de previsão de vendas de lojas: O volume de vendas é maior em feriados que em dias comuns? Lojas maiores (em estoque) vendem mais? Lojas com mais vendedores vendem mais? etc.

3. Benchmark de soluções

Aqui você irá procurar maneiras de comuns de resolver seu problema, não tenha receio em procurar na internet por exemplos de soluções, pois não existe bala de prata, e cada problema requer uma maneira diferente de resolvê-las. Anote todas as opções que encontrar, teste várias. Lembre-se que esta profissão não é nomeada cientista a toa, testar faz parte.

Irei mais a frente escrever um artigo mais detalhado e completo sobre planejamento de soluções.

Passo 01: Data Description

Sei que você estava pensando: quando que começa a programação? Sim jovem, é agora.

Nesta etapa você irá descrever estatísticamente os dados dos clientes para tentar entender a forma dos dados.

Para isso você irá checar a dimensão dos seus dados, verificar os tipos de dados, checar valores faltantes. Ao se deparar com valores faltantes deverá tomar a decisão de como trabalhar com eles, ignorando-os e apenas excluindo-os ou aplicando alguma técnica de filtragem.

Em seguida após tratar seus dados faltantes é hora de mudar as features que estejam em um formato não correto, como por exemplos datas e colunas id com tipo object.

~Por último é hora de fazer uma breve análise descritiva dos dados numéricos e categóricos. Checar valores de média, mediana, minímos e máximos dos dados, verificar como está a skew e kurtosis das suas features numéricas. Para dados categóricos você pode criar boxplots que deem informações das features em relação a variável alvo.

Passo 02: Feature Engineering

Esta etapa é uma das mais importantes em todo o processo, e onde você provavelmente mais retornará quando perceber que sua classificação só atingiu 40% de f1-score.

Feature engineering é a arte de criar novas features com base nas já existentes. Exemplo: transformar aquela data de venda de certo produto no formato dd/mm/aa em 3 novas colunas pode ajudar em criar features como tempo em dias desde ultima compra.

Criar novas features acredite em mim, é o processo top 1 que faz seu modelo de machine learning pular de 80% para 95% de f1-score. Vale investir tempo em aprender como fazer e fazer de fato. Pode ser complicado de início mas com a experiência esse processo torna-se cada vez mais simples.

Passo 03: Data Filtering

Filtrar dados indesejados, sujos, faltantes, que não agregam ao objetivo.

Basicamente você irá filtrar linhas e colunas. Linhas de dias com vendas igual a zero por exemplo, podem não ajudar a resolver seu problema de predição de vendas. Assim como certas colunas do dataset que você recebeu podem ser descartadas por completo. Lembre-se que tudo depende do modelo de negócio.

Passo 04: Exploratory Data Analysis

Encontrar analisando os dados, peculiaridades a cerca dos clientes, na finalidade de entender melhor os clientes e melhorar o resultado.

Faça analises univariadas sobre sua variável resposta, suas variáveis categóricas e numéricas. Análises univariadas são análises que encaram as variáveis de forma isoladas, para isso você pode utilizar de gráficos de distribuição, histogramas, boxplots, gráficos de densidade etc.

Após entender como suas features se comportam isoladamente, é momento de fazer uma análise bivariada, comparando duas ou mais features entre si afim de responder aquelas perguntas de negócio criadas no passo 00. Caso ainda não tenha criado as perguntas, apenas compare suas features com a variável resposta para entendê-las melhor.

Comparar todas as features ao mesmo tempo utilizando correlação e mapas de calor também pode ser bastante útil.

Passo 05: Data Preparation

Preparar os dados convertendo a formas mais adequadas que os algoritmos de machine learning possam trabalhar.

Os diferentes tipos de dados que são apresentados no dataset possuem diferentes escalas. E utilizar estes dados sem passar por nenhum processo pode atrapalhar o desempenho de alguns algoritmos de machine learning pois muitos destes algoritmos impõe mais importância a features com ranges maiores de valores. Por isso é necessário coloca-los quase na mesma escala atravez de técnicas de normalização, reescala e encodings.

Apreenda as diferenças entre estas técnicas, como funcionam e como utilizá-las.

Passo 06: Feature Selection

Selecionar as melhores features, aquelas que irão agregar ao resultado esperado, diminuindo a dimensionalidade.

Alta dimensionalidade é um problema para algoritmos de machine learning, por isso é importante reduzir o número de features e deixar apenas as realmente importantes para atingir o objetivo.

Mas como saber quais features são importantes para os algoritmos? Você pode utilizar técnicas como o Boruta ou Random Forest. O resultado de utilizar estas técnicas é uma lista de colunas que foi julgado como muito útil que você deve manter para as etapas seguintes. Você também pode adicionar features que estas técnicas excluíram por entender que são importantes para o negócio.

Este passo além de técnica requer entendimento de negócio. Talvez aqui você esteja reparando que ciência de dados não é apenas aplicação de tecnologia, mas também bastante envolvimento com business.

Parte 07: Machine Learning Modelling

Criação e treinamento dos modelos de machine learning.

Esta é provavelmente a etapa que você estava esperando de forma ansiosa. E provavelmente está decepcionado que este seja somente o passo 07. Machine Learning faz parte do cotidiano de um cientista de dados mas para obter resultados realmente relevantes o foco não deve estar apenas aqui. Os passos anteriores potencializam o desempenho dos algoritmos.

Parando com a enrolação, esta etapa é onde você irá separar seus dados em treino, teste e validação (sim, não é apenas treino e teste) e aplicar os tão famosos algoritmos de machine learning.

A dica é aplicar diversos modelos que encaixam com a proposta de solução. Existem os de classificação, os de regressão e os de clusterização, utilize o correto para a finalidade desejada. Ao aplicar algoritmos como random forest, xgboost, regressão linear etc. crie uma tabela de comparação utilizando as métricas apropriadas para tentar definir quais algoritmos se saíram melhores.

Para realizar a comparação você irá utilizar os dados de validação ao aplicar validação cruzada que é uma técnica para avaliar a capacidade de generalização de um modelo, a partir de um conjunto de dados. Quando se treina um classificador de cães e gatos por exemplo, seu algoritmo utilizou os dados de treino para aprender a identificar cada espécie. Para saber se o algotitmo realmente aprendeu, a validação cruzada utilizará dados que o modelo nunca viu (os de validação) para medir sua capacidade de fazer previsões bem sucedidas com dados nunca antes vistos, isso é generalização.

Passo 08: Hyperparameter Fine Tunning

Após encontrar o melhor modelo, ajustar os parâmetros para melhorar um pouco a capacidade do algoritmo.

Você criou um bom modelo entre os vários algoritmos testados, porém ainda não sabe da sua máxima capacidade por não ter utilizado os melhores parâmetros. Utilizando técnicas como grid search, random search, bayesian optimization etc. você encontrará os melhores parâmetros.

Encontrado os melhores parâmetros você irá treinar este modelo ótimo para utilizar na solução do problema.

Passo 09: Convert Model Performance to Business Values

Analisar como os resultados obtidos impactam o negócio da empresa.

Se você chegar no seu chefe e entregar um link de um modelo de machine learning ele vai olhar seriamente para você com toda sinceridade do mundo vai falar: para que eu quero isso? Seu papel como cientista de dados não é criar os modelos mais incríveis, é resolver um problema. Dado esta afirmação você deve traduzir a performance do seu modelo em valor de negócio, ou seja, explicar como seu modelo irá fazer a empresa ganhar mais dinheiro no fim do mês/ano.

Esta etapa é a responsável por fazer o CEO aumentar o budget do setor de ciência de dados, pois aqui você irá atravez de um relatório, API ou que quer que seja mostrar que a previsão de vendas com precisão de 90% indica que a loja 82 irá retornar 11 milhoes de reais de lucro nos próximos 6 meses, enquanto a loja 33 apenas 1,1 milhões. E um relatório com possíveis motivos para estes resultados e talvez algumas sugestões de soluções.

Passo 10: Deploy in production

Tornar o modelo público, online, para ser utilizado pela empresa.

Esta etapa talvez não seja sua função na empresa, mas é bom entender os fundamentos. Então procure como utilizar a nuvem para fazer deploy dos modelos e deixá-los disponíveis para ser utilizado atravéz de um bot no telegram, uma tabela no google sheets ou servindo um app no streamlit.

Existem inúmeras ferramentas para tal, como google cloud platform, heroku, Digital Ocean.

Se aqui você está convencido que ciência de dados não é apenas aplicar machine learning, e agora acredita que está apto a fazer projetos interessantes meu papel está cumprido.

Muito obrigado pela atenção e bons estudos. Se tiver sugestões ou dúvidas seu comentário é muito bem vindo.

--

--