Ciência de dados para iniciantes

O que é e quais as suas áreas de atuação

Elder Carvalho
Oct 20 · 11 min read

1) Introdução

Após excelente publicação do Angelo Ciarlini, sobre a “A Jornada de Ciência de Dados na Localiza: Pesquisa Aplicada para Construir o Futuro da Mobilidade”, resolvi publicar esse artigo onde vamos explorar o que é ciência de dados e suas aplicações na vida cotidiana, explicando os conceitos básicos envolvidos nesse campo de estudo e estabelecendo um método prático para a sua aplicação.

2) O que é ciência de dados

Ciência de dados é o campo de estudo que combina conhecimento de negócios, técnicas de programação, estatística e matemática para extrair intuições e informações importantes a partir de dados. Para isso, os cientistas de dados desenvolvem algoritmos capazes de processar dados de entrada (como textos, números, datas e indicadores) e fornecer uma resposta de saída adequada.

Os algoritmos são conjuntos finitos de instruções executadas pelo computador. De forma simples podemos comparar a criação de algoritmos na ciência de dados com a preparação de um bolo. Nesse contexto nossa receita seria o algoritmo (conjunto de instruções a serem seguidas), nossos dados seriam os ingredientes utilizados (entradas do algoritmo) e o bolo seria a saída (resultado) da execução de nosso algoritmo. Vejamos abaixo um exemplo de algoritmo para a preparação de um bolo.

1. Aqueça o forno a 180o C;
2. Unte uma forma redonda;
3. Numa taça:
3.1. Bata 75g de manteiga e 250g de açúcar até ficar cremoso;
3.2. Junte 4 ovos, um a um, a 100g de chocolate derretido;
3.3. Adicione aos poucos 250g de farinha peneirada;
4. Deite a massa na forma;
5. Leve ao forno durante 40 minutos;

Fazendo a associação, temos:

Algoritmo = Receita
Seus dados = Ingredientes
Computador = Batedeira
Sua resposta = É o Bolo!

Note que as instruções fornecidas em nosso algoritmo respeitam uma sequência lógica, sendo necessária a sua execução na ordem correta para a obtenção do resultado desejado. Assim como não é possível despejar a massa em uma forma antes de prepara-la, também não é possível que o algoritmo computacional realize tarefas em uma sequência aleatória. Deste modo deve-se pensar sempre na sequência adequada dos passos a serem executados para a criação de um algoritmo funcional.

No contexto da ciência de dados podemos definir o processo básico da implantação de um projeto como:

a. Compreensão do problema de negócio (formulação de uma pergunta);

b. Aquisição e preparação dos dados;

c. Modelagem do problema.

3) Tipos de problemas solucionados pela ciência de dados

Antes de iniciarmos o desenvolvimento de um algoritmo para solucionar um dado problema de negócio devemos compreender quais os tipos de problemas podem ser solucionados por meio da ciência de dados. Ela basicamente pode resolver cinco tipos de problema:

  • Problemas de classificação;
  • Detecção de anomalias;
  • Regressão;
  • Clusterização;
  • Aprendizagem por reforço.

3.1) Algoritmos de Classificação

Os algoritmos de classificação são utilizados para responder perguntas do tipo “Isso é A ou B?”. Ou seja, com eles é possível identificar o pertencimento ou não de uma certa entrada a uma determinada categoria pré-determinada, como no caso de identificar se uma imagem apresenta um gato ou um cachorro ou se um cliente pertence ou não a determinado grupo.

Figura 1 — Classificação binária

Os algoritmos de classificação podem ser agrupados de acordo com o número de classes em que separam as entradas. Quando temos apenas dois grupos de resposta classificamos os algoritmos como de classificação binária, e quando temos três ou mais grupos os classificamos como classificação multi-classe.

Figura 2 — Classificação multi-classe

Aqui algoritmos de classificação binária:

  • Qual opção atrai um maior número de clientes: um cupom de $5 ou um desconto de 25%;
  • Essa imagem representa uma abelha?
  • Esse cliente é um homem ou uma mulher?
  • Esse e-mail é um spam?

Quanto aos de classificação multi-classe podem responder questões como:

  • Qual animal aparece nessa imagem?
  • Qual a raça desse cachorro?
  • Qual o gênero (terror, mistério, romance, etc) desse livro?

3.2) Algoritmos de detecção de anomalias

Esse conjunto de algoritmos nos permite identificar quando uma entrada se encontra fora do padrão. Em outras palavras, essa classe de algoritmos é capaz de identificar ocorrências raras, eventos ou observações que levantam suspeita por se distanciarem muito das características da grande maioria dos dados. Podemos citar como exemplo de eventos fora do padrão fraudes bancárias, problemas médicos (doenças), equipamentos com defeito, etc. Esse tipo de dado ou evento anômalo é conhecido como outlier.

Figura 3 — Exemplo de Outliers

Em resumo, algoritmos que sinalizam eventos ou comportamentos inesperados ou incomuns. Fundamentalmente nos proporcionando pistas de onde procurar por problemas!

3.3) Algoritmos de Regressão

Os algoritmos de regressão nos permitem identificar relações matemáticas entre dados de entrada e saída, nos possibilitando prever a ocorrência de eventos futuros (a partir da observação de eventos passados). Essa classe de algoritmos é especialmente eficaz para responder questões que tem como resposta um número, como:

  • Qual a temperatura da próxima terça-feira?
  • Qual a quantidade de carros demandados no próximo feriado?
  • Qual será a receita do próximo bimestre?

Outra aplicação interessante dos algoritmos de regressão é a identificação de relações causa e efeito entre variáveis, sendo possível responder perguntas como:

  • Qual o impacto de um ano a mais de estudo no salário de um funcionário
  • Qual a diferença de renda entre homens e mulheres em determinada empresa?
Figura 4 — Identificação de padrões com algoritmos de regressão

Lembrando que as perguntas respondidas por esse modelo nos entrega sempre um número.

3.4) Algoritmos de Clusterização

O processo de clusterização consiste na tarefa de agrupar objetos de tal forma que objetos no mesmo grupo (denominados clusters) são mais similares (apresentam mais características em comum) do que objetos em outros grupos. Esses algoritmos nos permitem entender a estrutura presente em um conjunto de dados, mesmo sem uma definição clara dos grupos presentes dentro do conjunto de dados.

Essa tarefa é diferente da classificação, pois não se sabe o grupo de antemão.

Figura 5 — Agrupamento de dados em clusters

Com os algoritmos de clusterização podemos responder perguntas como:

  • Quais usuários gostam do mesmo tipo de filme?
  • Quais clientes compram o mesmo tipo de produtos?
  • Qual conjunto de carros apresentam o mesmo tipo de falha?

Entendendo como os dados estão organizados, é possível prever comportamentos e eventos.

3.5) Algoritmos de aprendizagem por reforço

Esse conjunto de algoritmos permite a sistemas autônomos e robôs aprender com ações passadas, aprendendo o melhor modo de agir a cada interação com o ambiente.

Figura 6 — Interação do agente com o ambiente

Esse tipo de modelo é baseado na forma como nosso cérebro funciona: um simples sistema de reação a punições e recompensas.

Na fase de treino desses modelos os agentes interagem com o ambiente várias vezes, e a cada interação recebe um estado (se a ação executada foi positiva ou negativa). Desse modo o algoritmo é capaz de aprender se a ação executada foi positiva ou negativa. A cada nova interação com o ambiente o sistema se torna mais “inteligente”, sendo capaz de aprender quais ações ele deve tomar em situações reais. Temos como exemplo desse tipo de algoritmo a direção de um carro autônomo. Como ele deve agir ao interagir com um sinal (semáforo) com a luz amarela? Ele deve acelerar ou frear?

4) O processo de ciência de dados

Agora que sabemos quais tipos de problemas podem ser solucionados através da ciência de dados, podemos focar nosso estudo na forma correta de executar cada uma dessas ações. Vimos anteriormente que os três passos para resolução de um problema com ciência de dados são:

a. Formulação de uma pergunta;

b. Aquisição e preparação dos dados;

c. Modelagem do problema.

4.1) Formulação de uma pergunta

Tão importante quanto o resultado alcançado é a pergunta a ser feita. As perguntas respondidas por sistemas de ciências de dados devem ser tão específicas quanto possível. Por exemplo, ao invés de tentar solucionar o problema “O que ocorrerá com minhas ações?”, podemos reformular a pergunta para “Qual será o retorno da minha carteira de ações?”. Deste modo podemos compreender melhor qual a natureza desse problema, e assim identificar qual o tipo de algoritmo devemos utilizar.

Muitas das vezes uma simples reformulação da pergunta feita muda completamente a natureza do problema, e a técnica utilizada para soluciona-lo. Observe as perguntas abaixo:

  • Esse filme é interessante para esse usuário?
  • Dada uma lista de filmes, quão interessante é esse filme para esse usuário?

A primeira pergunta é solucionada a partir de um algoritmo de classificação, já a segunda (por associar cada filme a uma nota) se trata de um problema de regressão, onde é apresentado um ranking.

Logo, tenha sempre em mente que a definição da pergunta inicial pode alterar completamente seu trabalho! Portanto, sempre aloque o tempo necessário na definição correta do problema a ser resolvido.

4.2) Aquisição e preparação dos dados

O segundo passo para a solução de um problema por meio da ciência de dados é definir quais os dados são importantes para a resolução do problema. Em um problema de regressão, por exemplo, devemos definir bem quais variáveis estarão presentes no modelo para encontrar o melhor resultado possível. A presença de variáveis não correlacionadas no modelo podem afetar a qualidade de nossa regressão.

Por exemplo, se estivermos tentando prever a quantidade de álcool no sangue de uma pessoa na saída de uma balada a inclusão de variáveis como o preço da água no estabelecimento provavelmente não seriam tão relevantes no momento da previsão como a contagem de doses de vodka ingeridas.

Figura 7 — Exemplo de bases de dados

Ainda quanto a seleção dos dados devemos observar a estrutura desejada desses dados. Podemos classificar nossos dados de três maneiras distintas: corte transversal, séries temporais e dados em painel.

4.2.1) Corte Transversal

Dados em corte transversal consiste em uma amostra de dados colhida em um dado ponto do tempo. Por exemplo, temos abaixo um conjunto de dados colhidos no ano de 1976 utilizados para a determinação do salário/hora esperado naquele ano.

4.2.2) Séries Temporais

Uma serie temporal consiste na observação de uma ou mais variáveis ao longo do tempo. Podemos citar como exemplo de uma série temporal as observações do índice IBOVESPA ao longo dos anos, como demonstrado na imagem abaixo.

Figura 8 — Série temporal da evolução do índice IBOVESPA

4.2.3) Dados em Painel

Dados em painel consistem na observação de uma série temporal para cada registro de corte transversal. Como exemplo desse tipo de dados, suponha que tenhamos o histórico de vendas por produto para cada loja em um período de três anos.

Por fim, devemos observar a completude de nossa fonte de dados, sendo capaz de identificar falhas em nossas observações. Isso é necessário pois dados incompletos tornam os modelos incapazes de realizar suas previsões e análises. Outra necessidade é a remoção de dados irrelevantes (outliers) que possam enviesar nossa análise. Além disso, devemos observar se a quantidade de observações é suficiente para a realização da análise.

Figura 9 — Exemplo de bases de dados completas e incompletas

O processo de limpeza de dados pode ser realizado seguindo os passos abaixo:

a. Remova observações indesejadas, como linhas duplicadas. Certifique-se ainda de que todos os dados são relevantes para a análise desejada. Por exemplo, se desejamos realizar um corte transversal com dados de 2019, as informações de anos anteriores devem ser ignoradas e, portanto, removidas de nossa análise.

b. Corrija erros estruturais, como a inconsistência de dados de classificação. Na imagem abaixo, por exemplo, podemos observar que as categorias “composition” e “Composition” são idênticas, assim como “shake-shingle” e “Shake Shingle” pertencem a mesma classificação. Deste modo procure erros de digitação e inconsistências em dados de classificação.

Figura 10 — Exemplo de agrupamento de dados incorreto

c. Remova outliers indesejados.

d. Remova ou preencha informações inexistente através da técnica adequada.

4.3) Modelagem do problema

O último passo da resolução de um problema por meio da ciência de dados é a escolha de um algoritmo adequado para resolver o problema. Além de escolher a classe de algoritmos adequada (dentre as cinco classes apresentadas anteriormente) deve-se escolher um algoritmo entre todos os disponíveis dentro daquela classe. Essa escolha é tão importante como a escolha da classe de algoritmos adequada, uma vez que ao escolher um modelo temos algumas premissas e limitações associadas a ele.

Por exemplo, na análise de séries temporais alguns modelos (como o ARMA) desconsideram algumas características que podem estar presentes em algumas séries temporais como a sazonalidade. Neste caso, se sua serie apresenta tal característica, a escolha de um modelo que considera essa propriedade (como o SARIMA) se mostra mais adequada para a solução de seu problema. Deste modo o estudo de vários modelos e algoritmos se faz tão importante quanto o conhecimento das classes de algoritmos disponíveis.

5) Ciência de dados no dia-a-dia

Termos como análise de dados, estatística e bancos de dados geralmente são associados apenas ao mundo profissional. Entretanto, os reflexos desses conceitos estão cada vez mais presentes em nossa vida cotidiana. Por exemplo, ao abrir o catálogo da Netflix e observar o catálogo de filmes estamos interagindo com um sistema de recomendações.

Todas as vezes que você pesquisa um restaurante no Google e escolhe o com a maior recomendação você está apostando na sua chance de aproveitar uma boa refeição. Quando observamos os preços no supermercado e decidimos não comprar um produto com preço elevado estamos agindo como um sistema de detecção de anomalias.

Portanto, podemos dizer que de certa forma todos agimos como cientistas de dados, salvaguarda suas devidas proporções.

Figura 11 — Ciência de dados no dia-a-dia (detecção de anomalias)

Referências:

Sheri Gilley (21/03/2019) Data Science for Beginners, Disponível em: https://docs.microsoft.com/en-us/azure/machine-learning/studio/data-science-for-beginners-the-5-questions-data-science-answers (Acessado em: 13/05/2019).

Data Science, Disponível em: https://www.datarobot.com/wiki/data-science/ (Acessado em: 13/05/2019).

Colin Priest (22/11/2017) Let Your Data Scientists Be Human, Disponível em: https://blog.datarobot.com/let-data-scientists-human (Acessado em: 13/05/2019).

Nelma Moreira (14/10/2000) Um algoritmo para preparar um Bolo de Chocolate, Disponível em: https://www.dcc.fc.up.pt/~nam/aulas/0001/pi/slides/slipi0001/node7.html(Acessado em: 13/05/2019).

Nick Schonning (19/10/2017) What is the Team Data Science Process?, Disponível em: https://docs.microsoft.com/en-us/azure/machine-learning/team-data-science-process/overview (Acessado em: 13/05/2019).

Vegard Flovik (31/12/2018) How to use machine learning for anomaly detection and condition monitoring, Disponível em: https://towardsdatascience.com/how-to-use-machine-learning-for-anomaly-detection-and-condition-monitoring-6742f82900d7 (Acessado em: 13/05/2019).

Rohith Gandhi (28/05/2018) Introduction to Machine Learning Algorithms: Linear Regression, Disponível em: https://towardsdatascience.com/introduction-to-machine-learning-algorithms-linear-regression-14c4e325882a (Acessado em: 13/05/2019).

Hudson Chaves Costa (2018) Introdução à Econometria, Disponível em: https://rpubs.com/hudsonchavs/introducao0 (Acessado em: 13/05/2019).

Aya Ephrati (14/05/2018) Everyday Analytics: Data-Driven Life at Home and Work, Disponível em: https://www.sisense.com/blog/everyday-analytics-data-driven-life-home-work/ (Acessado em: 14/05/2019).

#LocalizaLabs

O laboratório de tecnologia e inovação da Localiza

Elder Carvalho

Written by

#LocalizaLabs

Já somos mais de 700 profissionais de tecnologia com um propósito único: construir o futuro da mobilidade. Por aqui falamos de infraestrutura, inovação, cultura, mobilidade e tudo que envolva o ecossistema de tecnologia. Sejam bem-vindes!

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store