Регрессионные графики в 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 – Создание диаграмм рассеяния и линейных диаграмм
Last updated