Data Visualization
Визуализация данных представляет их в виде диаграмм, графиков и карт, помогая обнаруживать закономерности, выбросы и ошибки — от аудита наборов данных до кривых обучения.
Визуализация данных — это графическое представление данных, при котором значения кодируются положением, длиной, цветом или формой на диаграммах, графиках, картах и изображениях с аннотациями, чтобы люди могли увидеть закономерности, выбросы и ошибки, скрытые в таблицах чисел. Исследовательская визуализация помогает аналитику изучать данные в ходе разведочного анализа данных — подхода, который Джон Тьюки популяризировал в своей одноимённой книге 1977 года; пояснительная визуализация помогает донести выводы до других. В машинном обучении и компьютерном зрении специалисты используют визуализацию для аудита наборов данных, отслеживания обучения, диагностики ошибок моделей и объяснения предсказаний.
Зачем нужна визуализация#
В 1973 году статистик Фрэнсис Энском показал на примере четырёх небольших наборов данных, которые теперь называют квартетом Энскома, что у них практически одинаковые сводные статистики:
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")У всех четырёх наборов среднее y равно 7,50, дисперсия — 4,12 или 4,13, а корреляция — 0,816 или 0,817, но сохранённые графики выглядят совершенно по-разному: набор I показывает шумную линейную зависимость, II — плавную кривую, III — идеальную прямую с одним выбросом, а IV — вертикальную группу точек, корреляция которых полностью обусловлена одной удалённой точкой. В 2017 году исследователи из Autodesk развили эту идею, создав Datasaurus Dozen — тринадцать наборов данных с одинаковыми статистиками, один из которых при построении образует динозавра.
Как выбрать тип диаграммы#
Диаграмма подходит, если способ кодирования данных соответствует поставленному вопросу. Для сравнения категорий подходят столбчатые диаграммы, для отображения изменений во времени — линейные графики, для распределений — гистограммы и диаграммы размаха, для связей между двумя переменными — диаграммы рассеяния, а для пространственных закономерностей — карты и тепловые карты. В экспериментах по графическому восприятию, проведённых в 1984 году, Уильям Кливленд и Роберт Макгилл выяснили, что люди точнее всего оценивают положение на общей шкале, затем длину, угол, площадь и, наконец, оттенок цвета. Поэтому столбчатые диаграммы и диаграммы с точками лучше круговых диаграмм подходят для точных сравнений. Для обозначения категорий и величин лучше всего подходят перцептивно равномерные цветовые схемы, доступные людям с нарушением цветовосприятия, например viridis — схема по умолчанию в Matplotlib начиная с версии 2.0.
Визуализация в машинном обучении#
- Аудит смещения в наборе данных: Гистограммы классов показывают дисбаланс, карты расположения и размеров рамок выявляют объекты, которые всегда появляются в одной области или в одном масштабе, а сетки изображений помогают обнаружить ошибки в метках.
- Кривые функции потерь: Графики потерь на обучающей и валидационной выборках по эпохам показывают сходимость; рост потерь на валидационной выборке при снижении потерь на обучающей указывает на переобучение.
- Матрицы ошибок и кривые «точность–полнота»: Показывают, какие классы модель путает, а также как точность меняется относительно полноты при изменении порога уверенности.
- Карты эмбеддингов с помощью t-SNE: Такие проекции, как t-SNE, располагают похожие примеры рядом друг с другом в двумерном пространстве, помогая выявлять кластеры, дубликаты и выбросы.
- Карты значимости и наложения предсказаний: Отображают на изображениях рамки, маски или ключевые точки и выделяют пиксели, повлиявшие на решение.
Трекеры экспериментов, такие как TensorBoard и Weights & Biases, строят графики метрик в реальном времени для множества запусков обучения, поэтому переобучение становится заметно, как только начинает расти ошибка на валидационной выборке. Ultralytics YOLO также по умолчанию сохраняет основные графики в папке каждого запуска обучения: labels.jpg показывает количество экземпляров каждого класса, примеры форм рамок и двумерные гистограммы центров ограничивающих рамок, а также ширины рамок относительно высоты; results.png отображает каждую функцию потерь и метрику по эпохам, а для валидации строятся матрицы ошибок и кривые «точность–полнота».
Визуализация данных и смежные понятия#
- Аналитика данных: Более широкий процесс изучения, очистки и моделирования данных для получения ответов на вопросы. Визуализация — один из основных инструментов для исследования данных и представления результатов.
- Объяснимый искусственный интеллект (XAI): Помогает понять, почему модель приняла то или иное решение; карты значимости — один из основных результатов такого анализа.
- Интеллектуальный анализ данных: Использует алгоритмы для автоматического поиска закономерностей в больших наборах данных, а визуализация часто помогает представить найденные закономерности.
- Панели мониторинга: Наборы диаграмм на одном экране для отслеживания ключевых метрик во времени; часто используются в инструментах бизнес-аналитики и для мониторинга моделей в эксплуатации.










