9,3K подписчиков

👁‍🗨 Визуализация данных в Python с помощью Seaborn

801 прочитал

Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.

На своей работе, связанной с наукой о данных, я создал много алгоритмов прогнозирования и написал много сложные SQL-запросы для анализа данных.

Затем весь этот анализ необходимо перевести в выводы и объяснить заинтересованным лицам, чтобы они могли принять бизнес-решения.

Лучший способ донести сложную информацию до нетехнического специалиста - это создание визуальных образов, которые легко усваиваются. Это могут быть отдельные диаграммы в презентации PowerPoint, серия визуализаций в Jupyter Notebook или интерактивная панель Tableau.

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

В этой статье я научу вас выполнять визуализацию данных в Python с помощью библиотеки Seaborn. К концу этого урока вы будете знакомы со следующими понятиями:

  • Техники, используемые для визуализации числовых и категориальных данных
  • Разница между одномерным, двумерным и многомерным анализом
  • Создание диаграмм регрессии и парных графиков с помощью Seaborn
  • Визуализация распределения переменной.
  • Предварительные условия

Чтобы следовать этому руководству, на вашем устройстве должен быть установлен блокнот Jupyter Notebook. Если у вас еще нет библиотеки Seaborn, установите ее с помощью программы 'pip'.

Загрузка набора данных

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

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.

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

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

Одномерный анализ

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

В этой статье мы рассмотрим два типа графиков для проведения одномерного анализа - гистограмму и график подсчета.

Гистограмма

Сначала рассмотрим распределение переменной "total_bill". Это даст нам представление о диапазоне цен на один обед в ресторане.

В ресторане почти в два раза больше мужчин, чем женщин.

Давайте повторим этот анализ, чтобы определить самые загруженные дни недели - дни, в которые в ресторане совершается наибольшее количество транзакций:

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-2

Приведенный выше график - это простая гистограмма переменной "total_bill". С первого взгляда видно, что стоимость одного обеда в этом ресторане обычно составляет от $10 до $25, при этом наблюдается положительный перекос из-за того, что некоторые посетители заказывают более дорогие блюда по цене выше $50.

График подсчета

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

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-3

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-4

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

Двумерный анализ

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

Гистограмма

Теперь попробуем визуализировать связь между двумя переменными - "пол" и "total_bill", чтобы узнать, есть ли разница в сумме, потраченной мужчинами и женщинами при посещении ресторанов.

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-5

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

Квадратная диаграмма

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

Квадратная диаграмма - это полезный способ понять разброс переменной, который дает нам краткое описание точки данных в виде пяти чисел - минимум, первый квартиль, медиана, третий квартиль, максимум.

Чтобы создать даннную диаграмму в Seaborn, используйте следующие строки кода:

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-6

С первого взгляда можно сказать, что медианная сумма, потраченная мужчинами и женщинами, практически одинакова - примерно $15-$19. Однако существует огромная разница в минимальной и максимальной потраченных суммах.

Есть женщины, которые тратили на еду всего $5, а максимальная сумма составляет около $30. Это может быть связано с тем, что женщины обычно едят меньше, чем мужчины, или обедают в небольших компаниях.

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

График регрессии

График регрессии - это лучший способ визуализировать связь между двумя числовыми переменными. С помощью функции lmplot() в Seaborn создается линия регрессии, демонстрирующая корреляцию между X и Y.

В данном случае рассмотрим взаимосвязь между "total_bill" и "tip". Первоначальное предположение перед построением графика заключается в том, что увеличение цены счета будет означать увеличение выплачиваемых чаевых.

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-7

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

Многомерный анализ

Наконец, мы рассмотрим один пример многомерного анализа - статистического анализа множества различных переменных одновременно.

 Научитесь создавать красивые диаграммы в Python с помощью библиотеки Seaborn.-8

Создание pairplot в Seaborn позволяет нам визуализировать взаимосвязь между всеми числовыми переменными в наборе данных одновременно.

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

Метод pairplot() полезен при анализе набора данных, содержащего несколько числовых характеристик. В данном случае, например, имеется 3 числовые переменные, и гораздо проще просмотреть их взаимосвязь на одном графике, чем создавать 9 отдельных визуализаций.

Визуализация данных с помощью Python - что дальше?

В этом уроке мы рассмотрели основы визуализации данных с помощью библиотеки Seaborn. Мы научились создавать графики, которые помогут нам выполнить одномерный, двумерный и многомерный анализ - все это позволяет нам лучше понять данные.

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

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

Кроме того, перед созданием любого вида визуализации обязательно задайте себе вопрос. Цель визуализации - рассказать вам (или другому человеку) что-то о данных, чего вы еще не знаете.

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

Эта статья является вводной и лишь поверхностно описывает то, что вы можете сделать с помощью библиотеки Seaborn. Если вы хотите узнать больше о различных типах диаграмм, которые можно построить с помощью Seaborn (их 14), советую посмотреть этот часовой урок на YouTube https://www.youtube.com/watch?v=6GUZXDef2U0.