Регрессионные графики в Seaborn с использованием regplot и lmplot
В этом руководстве вы научитесь использовать Seaborn для создания графиков регрессии с помощью функций sns.regplot() и sns.lmplot(). Может показаться странным, что Seaborn предлагает две функции для построения регрессивных отношений. Не волнуйтесь — это руководство упростит все, что вам нужно знать.
К концу этого урока вы научитесь следующему:
Как использовать функции Seaborn
regplot()иlmplot()для построения графиков регрессииКак понять разницу между двумя функциями
Как настроить графики с небольшими кратными, заголовками и метками осей
Как построить графики логистической регрессии и построить регрессионные отношения в совместных графиках Seaborn
Содержание
Понимание функций Seaborn regplot() и lmplot()
Seaborn предлагает две функции для создания графиков регрессии: regplot и lmplot. Несмотря на кажущееся дублирование, эти две функции предоставляют различный функционал.
Основные различия между двумя регрессионными функциями заключаются в следующем:
Функция
sns.lmplot()возвращает график (точнее, FacetGrid) и может использоваться для отображения дополнительных переменных с помощью цветовой семантики.sns.regplot()возвращает объект осей, что позволяет легко применять методы уровня осей.
Давайте рассмотрим, как можно использовать функцию sns.lmplot() для построения линейной зависимости:
В приведенном выше примере мы загрузили набор данных о пингвинах, встроенный в Seaborn. Затем мы использовали функцию lmplot() для построения отношения между длиной ласт и массой тела. Это привело к созданию изображения ниже:

Теперь давайте посмотрим, как мы можем использовать функцию regplot() для построения того же отношения:
В приведенном выше блоке кода мы просто изменили функцию на использование функции regplot(). Это привело к следующему изображению:

Мы видим, что, сравнивая оба графика, можно заметить, что они отображают одну и ту же зависимость, хотя визуально они различаются. Например, функция lmplot() возвращает график, который был без осевых линий и имеет другой размер.
Когда линия лучше соответствует данным, значение R-квадрата результата регрессии будет приближаться к 1.
Как построить график зависимости различных заказов с помощью Seaborn lmplot
Функции regplot() и lmplot() в Seaborn позволяют строить взаимосвязи регрессии различных порядков. Для этого мы можем использовать аргумент order=, который позволяет передавать различные порядки в любую из функций.
Давайте загрузим другой набор данных, который использует квадратичную зависимость. В следующем блоке кода мы укажем другой порядок:
Путём изменения порядка до 2, мы получаем график ниже, где кривая лучше отображает данные:

В следующем разделе вы узнаете, как добавить дополнительную переменную, используя семантику цвета.
Добавление оттенков переменных в Seaborn lmplot
Чтобы добавить дополнительную переменную с использованием семантики цвета, можно передать параметр hue= в функцию lmplot(). Это основное отличие между двумя функциями: только функция lmplot() позволяет передать дополнительную переменную для отображения ее цветом.
Давайте рассмотрим, как мы можем разделить данные по другой переменной. В качестве дополнительного бонуса мы добавим разделение данных с использованием различных маркеров. Это позволит сделать данные более доступными, особенно при печати в черно-белом режиме.
В приведенном выше блоке кода мы разделяем набор данных с использованием параметра hue=. Это позволяет передать дополнительный метку столбца, что делит данные на разные цвета. Также это строит отдельные линии регрессии для каждой подкатегории данных.

В следующем разделе вы научитесь строить график зависимости логистической регрессии с помощью lmplot в Seaborn.
Построение логистической регрессии на графике Seaborn
Функции regplot() и lmplot() библиотеки Seaborn позволяют вам построить кривую логистической регрессии, используя параметр
Для моделирования этой зависимости давайте рассмотрим связь между полом пингвина и его массой тела. Чтобы данные были более наглядными, добавим некоторый уровень вертикального разброса, который лучше показывает распределение:
В приведенном выше блоке кода мы указали Seaborn построить линию логистической регрессии, а также добавили немного "джиттера" к точечным диаграммам. Это приводит к следующему изображению ниже:

В следующем разделе вы узнаете, как строить малые множества (строки и столбцы) визуализаций.
Создание небольших кратных (строк и столбцов) графиков регрессии
Одной из наиболее впечатляющих возможностей библиотеки Seaborn является легкость добавления множественных графиков. Поскольку эти визуализации предполагают наличие нескольких изображений, нам необходимо использовать функцию уровня фигуры lmplot(). Давайте сначала рассмотрим добавление колонок графиков с использованием параметра
В приведенном выше блоке кода мы добавили col='species'. Это позволяет выделить каждый вид в свой собственный график и отобразить связи, как показано ниже:

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

Наконец, мы также можем разделить наши мелкие множества, используя параметр row=. Это позволяет вам создавать матрицу из строк и колонок визуализаций, разделенных по двум разным переменным. Давайте посмотрим, как это выглядит:
Путем выполнения этого действия, мы разделяем данные на столбцы и строки, используя переменные видов и пола. Это возвращает следующую визуализацию:

В последнем разделе ниже вы научитесь строить график регрессионной зависимости с использованием Seaborn jointplot.
Построение регрессионного графика в Seaborn Jointplot
Seaborn также позволяет вам визуализировать взаимосвязи регрессии с помощью совмещенного графика. Это позволяет вам наглядно увидеть линию регрессии, а также оценить распределение значений каждой из переменных. Давайте посмотрим, как мы можем это сделать:
В указанном выше блоке кода мы использовали функцию sns.jointplot() и применили аргумент kind='reg', чтобы построить линию регрессии. Ниже представлен полученный результат:

На приведенном выше графике мы построили совместный график с линией регрессии, а также нарисовали гистограммы данных вдоль краев графика.
Заключение
В этом уроке вы научились использовать Seaborn для построения регрессионных графиков с помощью функций sns.regplot() и sns.lmplot(). Сначала вы узнали различия между этими двумя функциями. Затем вы научились создавать простые регрессионные графики. После этого вы узнали, как изменять порядок зависимости, а также как строить модели логистической регрессии. Наконец, вы научились создавать небольшие множества визуализаций, а также использовать совместные графики для построения линий регрессии.
Дополнительные ресурсы
Чтобы узнать больше о схожих темах, ознакомьтесь с учебными пособиями ниже:
Линейный график Seaborn – Создавайте линейные графики с помощью Seaborn
Диаграммы рассеяния Seaborn в Python: полное руководство
Seaborn replot – Создание диаграмм рассеяния и линейных диаграмм
Последнее обновление