Лабораторная работа №5: Многомерный анализ с Seaborn
Цель: Научиться проводить разведочный анализ данных (EDA) "глазами". Мы перейдем от простых графиков к сложным визуализациям, которые показывают взаимосвязи между 3 и более переменными одновременно.
Инструменты:
- Python 3
- Seaborn (основной инструмент)
- Matplotlib (для настройки размеров)
- Pandas
Данные: Мы будем работать с популярным датасетом Diamonds (Бриллианты). Он содержит 54 000 записей о характеристиках камней (каратность, огранка, цвет, чистота) и их стоимости. Это идеальный датасет для поиска ответа на вопрос: "Что реально влияет на цену?".
Часть 1: Подготовка и Категориальный анализ
Seaborn встроен в экосистему Python и содержит несколько учебных датасетов.
Задание 1.1: Загрузка и осмотр
- Импортируйте библиотеки.
- Загрузите датасет
diamondsчерезsns.load_dataset. - Выведите
head()иinfo().
Вопрос на засыпку
Почему Ideal огранка стоит в среднем дешевле, чем Premium? (Мы ответим на это в части 3).
Часть 2: Распределения (Violinplot)
Boxplot скрывает форму распределения, а Violinplot показывает её.
Задание 2.1: Цена vs Чистота
Постройте Violinplot, показывающий распределение цены (price) для каждой категории чистоты (clarity).
- Отрежьте "хвосты" распределения для наглядности (
cut=0внутри violinplot, не путать с колонкойcut). - Поверните подписи оси X, если они наезжают друг на друга (
plt.xticks).
Часть 3: Многомерный анализ (Scatter + Hue)
Самая мощная техника
2D график + Цвет (3-е измерение). Ответим на вопрос из части 1: почему идеальные бриллианты дешевле? Возможно, они просто мелкие?
Задание 3.1: Цена vs Каратность + Огранка
- Постройте Scatterplot:
- Ось X:
carat - Ось Y:
price - Цвет (
hue):cut
- Ось X:
- Сделайте точки полупрозрачными (
alpha=0.5), так как данных много.
Вывод: Мы видим, что камни Ideal (обычно оранжевые/зеленые точки) часто имеют малый вес (внизу слева), а Premium — большой. Цена зависит от веса сильнее, чем от качества огранки.
Часть 4: Корреляции (Heatmap)
Построим карту "кто с кем дружит".
Задание 4.1: Матрица корреляций
- Вычислите матрицу корреляций
corr_matrix(только для числовых колонок!). - Постройте Heatmap.
- Включите отображение цифр (
annot=True) и выберите цветовую схемуcoolwarm.
Часть 5: Pairplot (Взгляд сверху)
Pairplot строит графики "каждый с каждым".
Внимание к производительности
Поскольку датасет огромный (54к строк), построение полного pairplot "повесит" Colab. Мы возьмем случайную выборку.
Задание 5.1: Pairplot на сэмпле
- Возьмите случайные 1000 строк из датасета (
df.sample(1000)). - Выберите только колонки
['carat', 'depth', 'price', 'cut']. - Постройте
pairplot, раскрасив данные по огранке (hue='cut').