Регрессионные графики в Seaborn с использованием regplot и lmplot

В этом руководстве вы научитесь использовать Seaborn для создания графиков регрессии с помощью функций sns.regplot() и sns.lmplot(). Может показаться странным, что Seaborn предлагает две функции для построения регрессивных отношений. Не волнуйтесь — это руководство упростит все, что вам нужно знать.

К концу этого урока вы научитесь следующему:

  • Как использовать функции Seaborn regplot() и lmplot() для построения графиков регрессии

  • Как понять разницу между двумя функциями

  • Как настроить графики с небольшими кратными, заголовками и метками осей

  • Как построить графики логистической регрессии и построить регрессионные отношения в совместных графиках Seaborn

Содержание

Понимание функций Seaborn regplot() и lmplot()

Seaborn предлагает две функции для создания графиков регрессии: regplot и lmplot. Несмотря на кажущееся дублирование, эти две функции предоставляют различный функционал.

Основные различия между двумя регрессионными функциями заключаются в следующем:

  1. Функция sns.lmplot() возвращает график (точнее, FacetGrid) и может использоваться для отображения дополнительных переменных с помощью цветовой семантики.

  2. sns.regplot() возвращает объект осей, что позволяет легко применять методы уровня осей.

Давайте рассмотрим, как можно использовать функцию sns.lmplot() для построения линейной зависимости:

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

A Sample Regression Plot Using Seaborn lmplot
Пример графика регрессии с использованием Seaborn lmplot

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

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

A Sample Regression Plot Using Seaborn regplot
Пример графика регрессии с использованием regplot Seaborn

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

Когда линия лучше соответствует данным, значение R-квадрата результата регрессии будет приближаться к 1.

Как построить график зависимости различных заказов с помощью Seaborn lmplot

Функции regplot() и lmplot() в Seaborn позволяют строить взаимосвязи регрессии различных порядков. Для этого мы можем использовать аргумент order=, который позволяет передавать различные порядки в любую из функций.

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

Путём изменения порядка до 2, мы получаем график ниже, где кривая лучше отображает данные:

Using Different Orders in Regression Plots in Seaborn
Использование разных порядков на графиках регрессии в Seaborn

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

Добавление оттенков переменных в Seaborn lmplot

Чтобы добавить дополнительную переменную с использованием семантики цвета, можно передать параметр hue= в функцию lmplot(). Это основное отличие между двумя функциями: только функция lmplot() позволяет передать дополнительную переменную для отображения ее цветом.

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

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

Using a Hue Semantic in Seaborn lmplot
Использование семантики оттенка в Seaborn lmplot

В следующем разделе вы научитесь строить график зависимости логистической регрессии с помощью lmplot в Seaborn.

Построение логистической регрессии на графике Seaborn

Функции regplot() и lmplot() библиотеки Seaborn позволяют вам построить кривую логистической регрессии, используя параметр

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

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

Plotting Logistic Regresson Using Seaborn lmplot
Построение логистической регрессии с использованием Seaborn lmplot

В следующем разделе вы узнаете, как строить малые множества (строки и столбцы) визуализаций.

Создание небольших кратных (строк и столбцов) графиков регрессии

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

В приведенном выше блоке кода мы добавили col='species'. Это позволяет выделить каждый вид в свой собственный график и отобразить связи, как показано ниже:

Plotting Columns of Small Multiples Using Seaborn lmplot
Построение столбцов небольших кратных чисел с использованием Seaborn lmplot

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

При разделении данных с использованием параметра hue=, мы можем увидеть, как данные распределяются как по видам, так и по полу пингвина, как показано ниже:

Using Columns and Colors in Seaborn lmplot
Использование столбцов и цветов в Seaborn lmplot

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

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

Using Rows and Columns of Small Multiples in Seaborn lmplot
Использование строк и столбцов с небольшими кратными числами в Seaborn lmplot

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

Построение регрессионного графика в Seaborn Jointplot

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

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

Plotting a Regression Line in Seaborn jointplot
Построение линии регрессии в совместном графике Seaborn

На приведенном выше графике мы построили совместный график с линией регрессии, а также нарисовали гистограммы данных вдоль краев графика.

Заключение

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

Дополнительные ресурсы

Чтобы узнать больше о схожих темах, ознакомьтесь с учебными пособиями ниже:

Последнее обновление