Gerando relatórios detalhados com poucas linhas de código
Realizar uma boa análise exploratória dos dados, ou em inglês Exploratory Data Analysis (EDA), é uma das etapas mais importantes em um projeto de ciência de dados. Uma boa EDA permite adquirir melhor conhecimento dos dados, gerar insights que podem auxiliar os times de negócio e determinar a modelagem dos dados que impactarão de forma direta na performance dos algoritmos de machine learning.
Desenvolvido com o principal objetivo de proporcionar uma EDA consistente e rápida, o ydata-profiling gera relatórios completos com apenas uma linha de código. Assim como a função df.describe()
do pandas, que fornece uma análise básica, ydata-profiling gera uma análise estendida, além de permitir exportar o relatório em diferentes formatos com HTML e json
.

Ydata Profiling é o novo Pandas Profiling?
Talvez você já ouviu falar do Pandas Profiling para gerar EDA de DataFrames do pandas. O ydata-profiling é sua nova versão com suporte de Spark, tornando-se mais eficiente na detecção de problemas em grandes quantidades de dados e integração com plataformas externas que usam Spark, assim ydata-profiling chega para suprir a limitação de seu antecessor em dados massivos.
Principais recursos do ydata-profiling
- Visão geral do data set (número de variáveis, valores nulos ou duplicados, memória usada)
- Análise de cada atributo e variáveis
- Estatística descritiva
- Análise de correlação
- Aviso de qualidade dos dados: desbalanceamento, uniformidade, valores zerados, valores faltantes, valores constantes
- Análise dos quartis
- Rápido e detalhado
- Relatórios em diversos formatos, facilitando a apresentação para qualquer pessoa
Implementação
Para instalar o ydata-profiling, você pode usar os seguintes comandos:
Com pip
pip install ydata-profiling
Com conda
conda install -c conda-forge ydata-profiling
Outras formas de instalação podem ser encontradas em sua documentação.
Gerando o relatório
Para entender o relatório gerado, utilizaremos o dataset de precificação de imóveis de King County disponível no Kaggle.
# Importando as bibliotecas
import pandas as pd
from ydata_profiling import ProfileReport
df = pd.read_csv('kc_house_data.csv')
# Gerando o relatório
profile = ProfileReport(df, title='Ydata Profiling Report')
# Exportando o relatório para um arquivo html
profile.to_file('Profiling.html')
Entendendo o relatório
Overview
Apresenta uma visão geral resumida de todo o dataset com número de variáveis e seus tipos, total de observações, presença de dados faltantes ou duplicados, e suas porcentagens no dataset, informações muito importantes para a etapa de feature engineering.

Na aba de Alertas, indica informações encontradas que podem ser importantes durante a manipulação dos dados, como correlação, cardinalidade, desbalanceamento e quantidades de valores zerados. Mostra áreas de atenção para a etapa de feature selection, visando reduzir a dimensionalidade dos modelos a serem implementados.

Variáveis
Um overview para cada variável individualmente, com um histograma para entender sua distribuição, analisando seu comportamento. Clicando em More details, encontramos um relatório completo, com estatísticas dos quantis e análise estatística descritiva com desvio padrão, coeficiente de variação, curtose, média e enviesamento. Com essas informações podemos definir como será feita a preparação dos dados, como por exemplo quais scalers ou encoders serão aplicados.

Nas outras abas apresenta uma versão expandida do histograma, valores em comum que mais se repetem e valores extremos (os 10 menores e maiores valores), que facilitam a detecção de outliers.

Interações
Interações entre todas as variáveis do dataset, disponíveis combinando as colunas na esquerda, sendo uma forma de visualizar suas correlações além dos alertas.

Correlação
Mapa de calor que mostra a correlação das variáveis, além de apresentar a tabela com todos os seus valores.

Valores faltantes
O relatório gera uma visualização para entender a quantidade de valores faltantes com a porcentagem, entre as variáveis. Como nesse dataset não há valores faltantes, todas as variáveis estão em 100%.

Amostra
Por fim apresenta uma amostra das primeiras e últimas 10 linhas do dataset.

Conclusão
Ydata-profiling é uma ótima ferramenta para análise rápida dos dados, dispensando a necessidade de escrever códigos para realizar EDA para cada variável, se tornando mais eficiente agora com suporte a Spark. Além de permitir a visualização do relatório por pessoas que não entendem de programação.
Uma dica que deixo é: use os relatórios gerados como um ponto de partida da análise exploratória, complementando com uma análise mais profunda a partir das informações extraídas, buscando entender a origem do comportamento exposto pelo relatório.
Agora que você sabe como implementar o Ydata Profiling e conheceu suas principais características, já pode agilizar sua EDA em seu próximo projeto.
Muito obrigado pelo seu tempo em ler até aqui e nos vemos no próximo artigo. Boas análises e até lá!