Data Visualization
A visualização de dados representa dados em gráficos, diagramas e mapas para tornar visíveis padrões, valores atípicos e erros, desde auditorias de conjuntos de dados até curvas de treinamento.
A visualização de dados é a representação gráfica dos dados, que codifica valores como posição, comprimento, cor ou forma em gráficos, diagramas, mapas e imagens anotadas, para que as pessoas possam ver padrões, valores atípicos e erros ocultos em tabelas de números. A visualização exploratória ajuda um analista a compreender os dados durante a análise exploratória de dados, prática defendida por John Tukey em seu livro homônimo de 1977, enquanto a visualização explicativa comunica uma descoberta a outras pessoas. Em aprendizagem automática e visão computacional, é assim que profissionais auditam conjuntos de dados, acompanham o treinamento, diagnosticam erros dos modelos e explicam previsões.
Por que a visualização é importante#
Em 1973, o estatístico Francis Anscombe demonstrou isso com quatro pequenos conjuntos de dados, hoje chamados de quarteto de Anscombe, que compartilham estatísticas resumidas quase idênticas:
import matplotlib.pyplot as plt
import numpy as np
# Anscombe's quartet: four datasets of 11 (x, y) points each
x = [10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5]
quartet = {
"I": (x, [8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68]),
"II": (x, [9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74]),
"III": (x, [7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73]),
"IV": ([8] * 7 + [19] + [8] * 3, [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89]),
}
# Print each dataset's summary statistics and draw its scatter plot side by side
fig, axes = plt.subplots(1, 4, figsize=(12, 3), sharex=True, sharey=True)
for ax, (name, (xs, ys)) in zip(axes, quartet.items()):
r = np.corrcoef(xs, ys)[0, 1]
print(f"{name}: mean y {np.mean(ys):.2f}, variance y {np.var(ys, ddof=1):.2f}, correlation {r:.3f}")
ax.scatter(xs, ys)
ax.set_title(f"Dataset {name}")
fig.savefig("anscombe.png")Os quatro conjuntos de dados apresentam uma média de y de 7,50, uma variância de 4,12 ou 4,13 e uma correlação de 0,816 ou 0,817, mas os gráficos salvos são completamente diferentes: o conjunto de dados I é uma tendência linear ruidosa, o II é uma curva suave, o III é uma linha perfeita com um valor atípico, e o IV é uma coluna vertical de pontos cuja correlação se deve inteiramente a um único ponto distante. Em 2017, pesquisadores da Autodesk ampliaram a ideia com o Datasaurus Dozen: treze conjuntos de dados com as mesmas estatísticas, um dos quais forma um dinossauro no gráfico.
Como escolher um gráfico#
Um gráfico funciona quando sua codificação corresponde à pergunta. Comparações entre categorias combinam com gráficos de barras; tendências ao longo do tempo, com gráficos de linhas; distribuições, com histogramas e diagramas de caixa; relações entre duas variáveis, com gráficos de dispersão; e padrões espaciais, com mapas e mapas de calor. Em seus experimentos de percepção gráfica de 1984, William Cleveland e Robert McGill descobriram que as pessoas avaliam com maior precisão a posição em uma escala comum, seguida pelo comprimento, ângulo, área e, por fim, o sombreado de cores. Por isso, gráficos de barras e pontos superam gráficos de pizza em comparações precisas. As cores representam melhor as categorias e magnitudes com mapas de cores perceptualmente uniformes e seguros para pessoas daltônicas, como viridis, o padrão do Matplotlib desde a versão 2.0.
Visualização em aprendizagem automática#
- Auditorias de viés nos conjuntos de dados: Histogramas de classes revelam desequilíbrios; mapas de posições e tamanhos das caixas mostram objetos que aparecem sempre numa região ou escala; e grades de imagens revelam erros de anotação.
- Curvas da função de perda: Os gráficos da perda de treinamento e validação por época mostram a convergência, e uma perda de validação que aumenta enquanto a perda de treinamento diminui indica sobreajuste.
- Matrizes de confusão e curvas de precisão-revocação: Mostram quais classes o modelo confunde e como a precisão varia em relação à revocação quando o limiar de confiança muda.
- Mapas de embeddings com t-SNE: Projeções como t-SNE posicionam amostras semelhantes próximas umas das outras em duas dimensões, revelando agrupamentos, duplicatas e valores atípicos.
- Mapas de saliência e sobreposições de previsões: Desenham caixas, máscaras ou pontos-chave nas imagens e destacam os pixels que influenciaram uma decisão.
Rastreadores de experimentos como o TensorBoard e o Weights & Biases exibem essas métricas em tempo real em várias execuções de treinamento, de modo que o sobreajuste fica evidente assim que a perda de validação começa a subir. O Ultralytics YOLO também salva, por padrão, os principais gráficos na pasta de cada execução de treinamento: labels.jpg mostra as contagens de instâncias por classe, uma amostra dos formatos das caixas e histogramas 2D dos centros das caixas delimitadoras e das larguras em relação às alturas das caixas, enquanto results.png mostra cada perda e métrica por época, e a validação acrescenta matrizes de confusão e curvas de precisão-revocação.
Visualização de dados e termos relacionados#
- Análise de dados: O processo mais amplo de inspecionar, limpar e modelar dados para responder a perguntas. A visualização é uma de suas principais ferramentas de exploração e apresentação de resultados.
- IA explicável (XAI): Explica por que um modelo tomou uma decisão, e visualizações como mapas de saliência estão entre seus principais resultados.
- Mineração de dados: Usa algoritmos para encontrar padrões automaticamente em grandes conjuntos de dados, e a visualização costuma apresentar os padrões encontrados.
- Painéis: Conjuntos de gráficos numa única tela que acompanham métricas importantes ao longo do tempo, comuns em ferramentas de inteligência empresarial e no monitoramento de modelos em produção.










