Руководство по Seaborn для новичков | Машинное обучение | Яндекс Дзен
1281 subscriber

Руководство по Seaborn для новичков

226 full reads
457 story viewsUnique page visitors
226 read the story to the endThat's 49% of the total page views
2 minutes — average reading time

Вступление

Если matplotlib «пытается сделать простые вещи легкими, а сложные - возможными», то seaborn помогает упростить четко определенный набор сложных вещей.

Крутизна Сиборна:

Самая большая сила Seaborn - это разнообразие функций построения графиков. Это позволяет нам создавать сложные графики даже в одной строчке кода!

В этом руководстве мы будем использовать три библиотеки для - Matplotlib, Seaborn, Pandas. Если вы полный новичок в Python, я предлагаю начать и немного познакомиться с Matplotlib и Pandas.

Если вы точно будете следовать этому руководству, вы сможете создавать красивые диаграммы с этими тремя библиотеками. Затем вы сможете использовать мой код как шаблон для любых будущих задач визуализации в будущем.

Давайте начнем наше морское путешествие со знаменитого набора данных о покемонах. Перед тем, как начать, я настоятельно рекомендую вам написать свои собственные базовые программы для каждого графа и попробовать поэкспериментировать с графами.

Вы можете найти набор данных Pokemon на Kaggle. Однако, чтобы облегчить вам путешествие, я сократил и очистил эту версию набора данных.

Вы можете скачать набор данных здесь: https://github.com/shelvi31/Seaborn-Experiments

https://python-graph-gallery.com/.

Приступим сейчас:

Начнем с импорта необходимых библиотек:

Руководство по Seaborn для новичков

Читаем файл CSV

Руководство по Seaborn для новичков

Я переключил кодировку на а utf8, определив другой пакет кодека в команде read_csv ().

Наши данные выглядят примерно так….

Руководство по Seaborn для новичков

Выход:

Руководство по Seaborn для новичков

Выход

Название столбцов явно не помогает понять их назначение. Важно знать все о наборе данных, прежде чем работать с ним.

Вот упрощенное описание набора данных для вас.

Этот набор данных включает 150 покемонов.

В этом наборе данных 150 строк и 13 столбцов.

Описание столбцов:

# ID для каждого покемона

# Имя: Имя каждого покемона

# Type 1: у каждого покемона есть тип, который определяет слабость / устойчивость к атакам.

# Type 2: Некоторые покемоны двойного типа и имеют характеристики обозначенные 2

# Total: сумма всех характеристик, которые идут после этого, общее руководство по тому, насколько силен покемон.

# HP: количество жизней или здоровья определяет, какой урон покемон может выдержать .

# Attack: базовый модификатор для обычных атак (например, Scratch, Punch)

# Defense : базовое сопротивление урону от обычных атак

# SP Атака: специальная атака, базовый модификатор для специальных атак (например, огненный взрыв, пузырьковый луч)

# SP Def: базовое сопротивление урону от специальных атак.

# Speed: определяет, какой покемон атакует первым в каждом раунде

# Stage: номер поколения

# Legendery: верно, если легендарный покемон, ложно, если нет

Я переименовал названия столбцов, чтобы придать больше смысла нашему анализу данных и для ясности ума. Хотя это необязательно, я настоятельно рекомендую вам сделать это, чтобы избежать путаницы.

Руководство по Seaborn для новичков

Мой результат теперь выглядит:

Руководство по Seaborn для новичков

Намного лучше!

Начнем визуализацию с простых - графика распределений.

Графики распределения:

График распределения отображает распределение и диапазон набора числовых значений, нанесенных на график относительно измерения. Гистограммы позволяют строить распределения числовых переменных.

Я мог бы использовать «data.hist (figsize = (12,10), bins = 20)», но поскольку не все столбцы в этой базе данных имеют числовые значения. Следовательно, мне нужно построить отдельные графики распределения.

Руководство по Seaborn для новичков

Вывод графика распределения: сумма атаки покемонов Функция Displot of Seaborn строит гистограмму с кривой плотности. Мы можем убрать плотность, используя опцию kde = ”False”.

Есть много альтернативных способов построить гистограмму в Python:

Руководство по Seaborn для новичков

Другой способ: использовать plt.hist ()

Руководство по Seaborn для новичков

Таким образом, для многих способов построения графиков распределения. Все функции pyplot.hist, seaborn.coOutuntplot и seaborn.displot действуют как оболочки для гистограммы matplotlib и могут использоваться, если построение такой гистограммы вручную будет слишком громоздким.

  • Для дискретных переменных удобнее использовать seaborn.countplot.
  • Для непрерывных переменных используются pyplot.hist или seaborn.distplot.

Совместные участки распределения:

Совместные графики распределения объединяют информацию из графиков рассеяния и гистограмм, чтобы дать нам подробную информацию для двумерных распределений.

Руководство по Seaborn для новичков
Выход: Jointplot
Выход: Jointplot
Выход: Jointplot

Графики плотности:

Графики плотности отображают распределение между двумя переменными.

Руководство по Seaborn для новичков

Гистограмма счетчик

Гистограммы помогают нам визуализировать распределения категориальных переменных: Счетчик - это тип гистограммы.

Руководство по Seaborn для новичков
Выход: гистограмма
Выход: гистограмма
Выход: гистограмма

Тепловая карта

Тепловая карта помогает нам визуализировать матричные данные в виде горячих и холодных точек. Теплые цвета обозначили разделы с наибольшей корреляцией .

Руководство по Seaborn для новичков
Выход: тепловая карта
Выход: тепловая карта
Выход: тепловая карта

Диаграмма рассеяния:

На точечной диаграмме точки используются для представления значений двух различных числовых переменных. Положение каждой точки на горизонтальной и вертикальной оси указывает значения для отдельной точки данных.

Диаграммы разброса используются для наблюдения за взаимосвязями между переменными.

Я сравнил статистику атаки и защиты для наших покемонов с помощью диаграмм рассеяния.

Выход: диаграмма рассеяния
Выход: диаграмма рассеяния
Выход: диаграмма рассеяния

В Seaborn нет специальной функции точечной диаграммы, поэтому по умолчанию мы видим диагональную линию (линию регрессии).

К счастью, seaborn помогает нам создать эту диаграмму:

  • fit_reg = False используется для удаления линии регрессии
  • hue = ’Stage’ используется для окраски точек по третьему значению переменной. Таким образом, мы можем выразить третье измерение информации с помощью цвета.

Вот стадия эволюции покемона в качестве третьей переменной!

Руководство по Seaborn для новичков
Выход: настроенная диаграмма рассеяния
Выход: настроенная диаграмма рассеяния
Выход: настроенная диаграмма рассеяния

Больше плотности приходится на отметку 40–120, пределы осей я изменю с помощью matplotlib:

Руководство по Seaborn для новичков

Теперь мы можем видеть более сфокусированный и более точный график!

Результат: лучший график рассеивания
Результат: лучший график рассеивания
Результат: лучший график рассеивания

Boxplot

Диаграмма ящик диаграмма используется для изображения групп числовых данных через их квартили.

диаграмма ящик диаграммы также могут иметь линии, выходящие из ящиков, указывающие на изменчивость за пределами верхнего и нижнего квартилей, отсюда термины диаграмма ящик и усы и диаграмма ящик и ус.

Мы можем удалить столбец «Сумма атаки», поскольку у нас есть индивидуальная статистика. Мы также можем удалить столбцы «Поколение» и «Легендарный».

Скрипичный график

Сейчас я построю скрипичный график.

скрипичный график - это альтернатива ящику с усами . Они показывают распределение (по толщине скрипки), а не только сводную статистику.

Здесь я показал распределение атак по основным типам покемонов.

Руководство по Seaborn для новичков
Продукт: Сюжет для скрипки.
Продукт: Сюжет для скрипки.
Продукт: Сюжет для скрипки.

Как видите, у драконов обычно более высокие характеристики атаки, чем у призраков, но они также имеют большую дисперсию.

Поклонники покемонов могут найти в этом сюжете что-то весьма неприятное: цвета бессмысленны. Почему розовый цвет травы или оранжевый цвет воды? Мы должны это исправить немедленно!

К счастью, Seaborn позволяет нам устанавливать собственные цветовые палитры. Мы можем просто создать упорядоченный список Python шестнадцатеричных значений цвета.

Я использовал Bulbapedia для создания новой цветовой палитры.

Руководство по Seaborn для новичков

Внесение изменений в график в соответствии с цветом типа покемона:

Руководство по Seaborn для новичков
Результат: Лучшая сцена для скрипки 🙂
Результат: Лучшая сцена для скрипки 🙂
Результат: Лучшая сцена для скрипки 🙂

Swarmplots

Как вы видели, графики скрипки отлично подходят для визуализации распределений.

Однако, поскольку в нашем наборе данных всего 150 покемонов, мы можем просто отобразить каждую точку. Вот тут-то и появляется график роя. Эта визуализация покажет каждую точку, «сложив» точки с похожими значениями.

Руководство по Seaborn для новичков
Swarmplot: Тип покемона против силы атаки
Swarmplot: Тип покемона против силы атаки
Swarmplot: Тип покемона против силы атаки

Выглядит неплохо, но для лучшего визуального эффекта мы можем объединить эти два! В конце концов, они отображают одну и ту же информацию.

Вышележащие участки

Руководство по Seaborn для новичков
Вышележащие участки
Вышележащие участки
Вышележащие участки

На заметку: inner = None: удалить такты внутри скрипок. alpha = 0.5: делает точки слегка прозрачными: помните, что альфа-значение должно быть плавающим, не сохраняйте в «» Вы можете найти ссылки на морской цвет здесь: https://python-graph-gallery.com/100-calling-a-color-with-seaborn/

Факторные графики

Факторные графики позволяют легко разделить графики по категориальным классам.

Руководство по Seaborn для новичков
Факторный график: для отдельных категориальных классов
Факторный график: для отдельных категориальных классов
Факторный график: для отдельных категориальных классов

Резюме:

  • plt.xticks (Rotation = -45): не работает, потому что вращает только последний график.
  • Необходимо использовать: set_xticklabels

Вы можете сделать больше визуализаций, подобных приведенным выше, просто изменив имена переменных и запустив те же строки кода.

Ссылка на изображение: Forbes
Ссылка на изображение: Forbes
Ссылка на изображение: Forbes

Это все для статьи! Я надеюсь, что вы нашли это руководство полезным и сможете его использовать. Удачи в изучении данных и удачного обучения!

Seaborn предлагает множество графиков и функций. Вы всегда можете узнать больше на https://seaborn.pydata.org/.

В обучении прекрасно то, что никто не может отнять его у вас! - Би Би Кинг