4 Boas Maneiras de Iniciar a Exploração de Dados

Gustavo Santos
Data Hackers
Published in
5 min readJul 17, 2020

--

A exploração de dados é a etapa inicial quando estamos processando um dataset. É nesta fase que começamos a entender os dados, descobrir como estão distribuídos, calcular as médias, mediana, dentre outras métricas da estatística descritiva. Aliás, é uma fase muito importante e interessante no processo.

Na Ciência de Dados, existe a máxima de que “se entra lixo, sai lixo”, referindo-se ao fato de que quando não fazemos a lição de casa explorando e limpando os dados, nossas previsões lá na frente serão pouco confiáveis, um desastre.

Portanto, a fase de exploração é crucial na Ciência de Dados, pois é dali que vamos começar a identificar problemas como dados não preenchidos (missing data), incoerências nas observações de algum atributo, incoerência entre atributos — e.g. combustível = gasolina para um carro descrito como Flex — entre outros. Nesta fase, também vamos aprender onde estão os dados faltantes e quanto do dataset isso representa, bem como podemos plotar alguns histogramas para perceber onde estão as concentrações de cada atributo.

Tudo isso, claro, requer códigos na sua linguagem de escolha. Mas para aqueles que utilizam Python, a boa notícia é que, neste artigo, irei mostrar 4 maneiras rápidas e eficientes para iniciar a exploração de dados e extrair alguns insights valiosos já no início.

1. A função df.describe( )

A função describe é uma das minhas preferidas, pois com um simples comando, podemos ver toda a estatística descritiva de todos os atributos numéricos do dataset, a saber: mínimo, máximo, média, desvio padrão, contagem, os quantiles de 25%, 50% e 75%. E se você colocar o parâmetro (include=’all’) ainda é possível ver também os atributos não numéricos, onde tem informações de quantos valores únicos naquela coluna e o valor mais frequente com sua frequência.

Nome_seu_DF.describe(include='all'): comando simples e que traz informação poderosa.

Desta função, pode-se extrair insights que responde a boas perguntas já de início. Aplicando o describe no famoso dataset mtcars, poderíamos dizer a uma pessoa que:

  • Temos 32 carros no dataset
  • Em média, nossa amostra tem carros de 147 cavalos que fazem 20 milhas por galão
  • Metade dos carros possuem 6 cilindros, havendo carros com 4 ou 8 também.
  • Mais da metade dos carros tem transmissão automática (am=0). Observe que a média do atributo am é 0.40, significando que há mais valores 0 do que 1.
  • A mesma regra vale para carros com engenharia do motor em V (vs=0). Média é de 0.43.

Olha só quanta informação já é possível extrair de apenas um comando Python e antes mesmo de fazer qualquer transformação nos dados. Você consegue ver a importância da exploração de dados?

2. A função df.info( )

Essa é outra função que traz um pequeno resumo dos dados. Nela, podemos ver quais são os tipos de dados em cada coluna, quantas observações (linhas) temos, quantos atributos (colunas) e quantas entradas são nulas em cada atributo. Simples, não?

A função .info( ) é um resumo simples que mostra como os atributos estão organizados.

Essa função incorpora o df.shape, df.dtypes e o df.isnull().sum(), mostrando todas em uma única tabela. Daqui, fica mais fácil enxergar algumas ações a serem tomadas na fase de limpeza de dados missing e de transformação de dados (objeto para datetime, int para float etc).

Ótimo. Porém, ainda pode ficar melhor.

E se eu te disser que temos dois pacotes que já trazem tudo isso das funções acima e ainda incluem gráficos e algumas análises exploratórias em um comando, você acredita? Então siga a leitura que eu te mostro.

3. Pandas Profiling

Este pacote chegou ao meu conhecimento e me ajudou bastante com análise exploratória. Porém, melhor do que falar é mostrar. Então, veja:

# Para instalar o pacote
pip install pandas-profiling
# Importando
from pandas_profiling import ProfileReport
# Usando
ProfileReport(df)
Pandas Profiling: relatório bem completo dos dados, trazendo correlações, distribuição, dados missing etc.

Acima são apenas duas telas, porém veja quanta informação recebemos de volta. Realmente é um perfil do nosso dataset, com resumo, informação por variável, as interações, correlações, dados missing e uma amostra de observações (head e tail) dos dados. E olha que bacana essa tela de aviso abaixo que já te mostras as possíveis colinearidades, tão importantes em modelos de regressão linear.

Veja como os avisos mostram até mesmo atributos muito correlacionados: seu amigo contra a multicolinearidade.

Realmente é uma ferramenta para ter em seu domínio. O lado ruim é que, para datasets muito grandes ele deixará o seu arquivo (ou notebook) muito grande, além de demorar para criar o Profile. É tudo uma questão de escolhas.

4. Sweetviz

Semelhante ao Pandas Profiling, temos como alternativa o excelente SweetViz, que traz basicamente a mesma coisa: um belo perfil do seu dataset com apenas um comando. A diferença é que este pacote não vai mostrar diretamente em um notebook, por exemplo. Ele mostra o resultado em uma página html no seu navegador. Realmente, um espetáculo de dados para explorar.

# Para instalar o pacote
pip install sweetviz
# Importando
import sweetviz as sv
#Utilizando
analise = sv.analyze(df)
analise.show_html('mtcars.html')
SweetViz em ação: explorar os dados ficou bem mais fácil.

Veja como ele já mostra valores mais frequentes, missing data, max, min, correlações com outras variáveis etc. No caso de variáveis categóricas, temos os valores únicos e as respectivas frequências.

Conclusão

Com todos esses dados em mãos e codificação mínima (uma ou duas linhas), agora você tem um arsenal de ferramentas para começar a fase de Exploração de Dados do seu projeto e extrair bons insights, mas, mais do que isso, ter melhor entendimento do seu dataset para poder realizar a limpeza e transformação adequadamente, fornecendo dados coerentes e confiáveis ao modelo de machine learning, extraindo, deste modo, ótimas previsões.

if data:
data.science()

Gus

--

--

Gustavo Santos
Data Hackers

Data Scientist. I extract insights from data to help people and companies to make better and data driven decisions. | In: https://www.linkedin.com/in/gurezende/