Executando verificação de segurança...
7

Data scientist #2 | Visualizando dados em python.

Esse é um dos blogs de uma série que estou fazendo para cientistas de dados, onde apresento ferramentas e conhecimentos da área. Todos os blogs com programação, como esse, terá um foco principal em Python e SQL, duas linguagens ótimas com o que nós vamos trabalhar.

Todos os códigos foram criados na plataforma do Google Colab, um ambiente para desenvolvedores, possibilitando executar códigos diretamente no navegar, com acesso gratuito a GPUs e TPUs. Caso queiram saber mais sobre o funcionamento, recomendo o vídeo MELHOR FORMA DE APRENDER PYTHON (Google Colab Notebook) de Felipe Deschamps.

Base de dados

De forma simples, uma base de dados é um conjunto organizado de informações ou dados relacionados entre si e armazenados eletronicamente em um sistema de computador. Essas bases podem ter diversos formatos de arquivo, o que utilizaremos estará em um banco de dados cv. Caso queira explorar mais base de dados, com outros formatos de arquivo, recomendo o Kaggle e UCirvine.

Trabalharemos com o conjunto de dados Iris, que é uma coleção bem famosa e amplamente utilizada para praticar análises de dados e aprendizado de máquina. Consiste em informações sobre amostras de três espécies de íris: setosa, versicolor e virginica. Cada amostra possui quatro características: comprimento e largura da sépala e comprimento e largura da pétala Primeiro, vamos aprender a visualizar tudo isso. Com a ferramenta pandas, uma biblioteca de manipualção e analise de dados.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

Essas são as bibliotecas que utilizaremos para a visualização dos dados, não pretendo me aprofundas nesse blog todas essas ferramentas, muitas delas são importantes para cientista de dados, utilizada para estatística e manipulação de dados, então caso esteja interessado, eu recomendo buscar documentação, são bem dinâmicas e pythonicas, com uma linguagem bem simples.

base = pd.read_csv('Iris.csv')

Aqui está uma leitura da base de dados, e com uma visualização nós temos o seguinte resultado

Antecedendo a visualização, eu resolvi limpar os dados e os reajustar, retirando toda a coluna Id e alterando os nomes da colunas para português.

base = base.drop(columns='Id')
base.columns = ['Sépala_Comprimento', 'Sépala_Largura', 'Pétala_Comprimento', 'Pétala_Largura', 'Espécies']

Agora com uma simples visualização da base de dados podemos ver o novo resultado com as alterações.


VISUALIZAÇÕES

Agora que importamos e ajustamos a base de dados, finalmente temos a oportunidade de explorar essa base de dados. Como o objetivo principal das informações que temos é a classificação do tipo de Íris, podemos visualizar a quantidade de cada espécie que temos dentro dessa base de dados usando um gráfico de barras;

sns.countplot(base['Espécies']);

Aqui temos uma visualização da quantidade de itens de cada espécie na base de dados. Temos 50 Íris setosa, 50 Íris vsersicolor e 50 Íris virginica. Como havia dito anteriormente; são dados utilizados com frequência para questões didáticas, então todas as informações foram organizadas de uma forma mais intuitiva, mas normalmente não é normal ver a mesma quantidade de classes na base de dados, é sempre bom visualizar para verificar para ver se precisa de uma limpeza nas informações.

Mas ainda há outros parâmetros para visualizarmos, como o comprimento e largura das sépalas e pétalas. É possível nós usarmos os diagramas de caixa para analisarmos a variação dos valores, o máximo e mínimo que cada um desses conjuntos alcança.

valores = base.columns[:-1]
fig, ax = plt.subplots(len(valores), 1, figsize=(9, 9))
for i in range(len(valores)):
    sns.boxplot(x=valores[i], data=base, ax=ax[i])

Novamente é interessante compreender que a visualização dos dados ajuda na analise de informações, nesse caso é possível entender a dispersão dos dados. Analisando somente o comprimento das pétalas, podemos afirmar que os valores tem um viés para valores mais altos, pois a faixa preta que divide as caixas, é a mediana do conjunto, mesmo a barra azul tendo uma cobertura para o lado esquerdo, não quer dizer nada, então é necessário visualizar e entender o tipo de visualização.

Mas agora invés de visualizarmos os parâmetros individualmente, vamos verificar se existe uma correlação entre eles, se existe alguma conexão entre as o comprimento da pétala e a largura dela por exemplo, e isso tem um método bem simples, podemos usar um mapa de calor.

dados = base.corr()
sns.heatmap(dados, annot=True, fmt='.2f', linewidths=0.5, linecolor='white', mask=np.triu(dados), cmap='Blues')
plt.show()

O mapa é bem intuitivo, poderia ser comparado com um batalha naval, onde a localização dos itens está marcado em coordenadas horizontais e verticais. Eu escolhi alterar as cores para a visualização ficar mais nítida, mas isso é só uma opção de várias outras.

Além do mapa de calor, também existe o mapa para correlação da própria biblioteca, onde ele identifica a correlação e cria gráficos de dispersão e gráficos de áreas para uma analise ainda mais visual dos valores. Ela pode parecer meio confusa de inicio, mas é semelhante a dinâmica do mapa de calor, só que com mais detalhes.

sns.pairplot(base, hue='Espécies', corner=True, palette='Blues')
plt.show()

E agora?

Eu falei bem pouco, apenas passei superficialmente por diversos conteúdos, como as bibliotecas citadas. Citei apenas alguns gráficos existentes, existe o de pizza, linhas, redes e entre outras várias formas para a visualização dos dados, apenas demonstrei os métodos que eu utilizo para poder visualizar e entender melhor as bases de dados que tenho. Sempre é necessário ter essa capacidade para poder explorar e comunicar melhor as informações dentro de seu arquivo.

Lembrando que nada que eu disse caracteriza ou não uma boa visualização, é necessário compreender e diferenciar cada caso para entender o melhor caminho para se executar.

E logo mais terá mais postagens desse mundo de data Science. 🦋

Carregando publicação patrocinada...
4

Belo post!

Você já conhece a biblioteca Plotly? Ela é uma biblioteca "tunada" de visualização de gráficos. Permite criar gráficos interativos, o que ajuda (e muito) na Análise Visual de Dados. Por exemplo, você pode clicar em um ponto de seu Gráfico de Dispersão, e ele irá mostrar os valores correspondentes àquele ponto! E ainda integra com o Pandas, pra dar ainda mais opções, e integrar mais informações a cada ponto. Veja o exemplo no link abaixo (clique ou toque em um dos pontos no gráfico, e veja a mágica acontecer).
https://plotly.com/python/line-and-scatter/

Na verdade, ela é até mais facil de utilizar que o Matplotlib, e tem mais opções de customização do que o Seaborn. (Mas eu ainda gosto mais do Heatmap do Seaborn).
Por padrão, ela gera gráficos em HTML, que podem ser embutidos interativamente em qualquer lugar, como o próprio Jupyter Notebook, VSCode, algum site, PowerPoint... E claro que dá pra exportar como imagem também.

E ainda tem uma documentação excelente (diferentemente do matplotlib).

Recomendo dar uma olhada! É uma ótima ferramenta pra se ter na sua bancada! https://plotly.com/python/getting-started/

1
2

Gostei, atualmente sou estudante do Python, mas estou focado utilizando o DASH, estou montando até uns projetos bacana web, com tela de login, utilizando SQLAlchemy buscando dados na nuvem com, agora como hospedo uma aplicação dessa na nuvem ???

1

Eu não sei dizer nenhum lugar para hospedagem. A última vez que eu fui atrás de hospedar um programa em python, foi com um bot do discord e eu utilizei um site para isso, chamado Autocode. Deve existir semelhantes para o seu tiplo de aplicação, com um preço aceitável.

2