Python

在Seaborn中使用lmplot()和residplot()可视化回归模型

在有关使用Seaborn中的lmplot()和residplot()可视化回归模型的文章中,我将解释Seaborn包的这两种方法。

什么是FacetGrid?

基本上,FacetGrid是Seaborn包中的类,可帮助我们可视化一个变量的分布。同时,我们还可以使用不同的面板可视化多个变量之间的关系。而且,FacetGrid具有三个维度–行,列和色相。

使用lmplot()方法的示例

以下代码示例使用可用的笔画预测波克城市官网集 这里。如前所述,笔画波克城市官网集包含以下字段:

[‘id’, ‘gender’, ‘age’, ‘hypertension’, ‘heart_disease’, ‘ever_married’, ‘work_type’, ‘Residence_type’, ‘avg_glucose_level’, ‘bmi’, ‘smoking_status’, ‘stroke’]

当然,函数lmplot()会绘制一个散点图,并且它也在FacetGrid上绘制。显然,该函数带有多个参数。尽管参数x和y表示波克城市官网集中的列,但应为参数波克城市官网分配波克城市官网框的名称。此外,还有一个色相参数,它允许我们添加另一个维,该维可以使我们使用颜色来表示同一图中的另一列。实际上,下面给出的代码示例显示了两个变量之间的关系以及表示CSV中第三列的色相,

import seaborn as sb
from matplotlib import pyplot as plt
import pandas as pd

df1=pd.read_csv("中风_data.csv")
print(df1.head())

print(list(df1))
#Example of using lmplot()
sb.lmplot(x="年龄", y="体重指数", hue="性别", data=df1)
plt.show()
sb.lmplot(x="心脏病", y="高血压", hue="性别", data=df1)
plt.show()
sb.lmplot(x="体重指数", y="高血压", hue="性别", data=df1)
plt.show()


sb.lmplot(x="年龄", y="体重指数", hue="已婚", data=df1)
plt.show()
sb.lmplot(x="心脏病", y="高血压", hue="已婚", data=df1)
plt.show()
sb.lmplot(x="体重指数", y="高血压", hue="已婚", data=df1)
plt.show()


sb.lmplot(x="年龄", y="体重指数", hue="work_type", data=df1)
plt.show()
sb.lmplot(x="心脏病", y="高血压", hue="work_type", data=df1)
plt.show()
sb.lmplot(x="体重指数", y="高血压", hue="work_type", data=df1)
plt.show()

sb.lmplot(x="年龄", y="体重指数", hue="吸烟状态", data=df1)
plt.show()
sb.lmplot(x="心脏病", y="高血压", hue="吸烟状态", data=df1)
plt.show()
sb.lmplot(x="体重指数", y="高血压", hue="吸烟状态", data=df1)
plt.show()

输出

lmplot()的演示
lmplot()的演示

线性回归的残差

当我们在散点图中绘制回归线时,可能会发生并非所有的点都落在回归线上的情况。因此,我们从波克城市官网点绘制到回归线的垂直线称为该点的残差。当一个点在回归线上方时,称为正残差。类似地,落在回归线以下的点具有负残差,而线上的点具有零残差。

确定残留物的好处

由于残差为我们提供了有关实际值与预测值之间的偏差的信息,因此它们可以帮助我们确定回归模型的准确性。

使用residplot()方法的示例

以下示例使用主要城市的每日温度波克城市官网集 这里。由于波克城市官网集包含大量行,因此我们应用了某些过滤器。首先,检索亚洲区域的行。之后,将“国家”字段选择为“印度”,将“城市”字段选择为“德里”。然后,我们分别在两个不同的波克城市官网框中选择2020年和1995年的行。然后我们绘制两个波克城市官网帧的回归图和残差图。

import seaborn as sb
from matplotlib import pyplot as plt
import pandas as pd

df1=pd.read_csv("city_temperature.csv")
print(df1.head())

print(list(df1))

#Printing unique values of the Region field
print(df1['Region'].unique())

print(df1.loc[df1["Region"]=="Asia"])
#Retrieve data where the Region is Asia
df2=df1.loc[df1["Region"]=="Asia"]
print(df2['Country'].unique())

# From Asia region, retrive the data where Country is india
df3=df2.loc[df2["Country"]=="India"]
print(df3)

# Fetch data from the City=Delhi
df4=df3.loc[df3["City"]=="Delhi"]
print(df4)

# Data from the Year=2020
df5=df4.loc[df4["Year"]==2020]
print(df5)

# Draw Regression Plot
sb.regplot(y="AvgTemperature", x="Month", data=df5)
plt.title("Regression Plot on Month-wise Average Temperature for the year 2020")
plt.show()

# Data from the Year=1995
df6=df4.loc[df4["Year"]==1995]
print(df6)

# Data from year=1995 and month upto 5
df7=df6.loc[df6["Month"]<=5]
print(df7)

# Draw Regression Plot
lim=sb.regplot(y="AvgTemperature", x="Month", data=df7)
lim.set(ylim=(50, 100))
plt.title("Regression Plot on Month-wise Average Temperature for the year 1995")
plt.show()

# Draw Residual Plot
sb.residplot(y="AvgTemperature", x="Month", data=df5)
plt.title("Residue Plot on Month-wise Average Temperature for the year 2020")
plt.show()
# Draw Residual Plot
sb.residplot(y="AvgTemperature", x="Month", data=df7)
plt.title("Residue Plot on Month-wise Average Temperature for the year 1995")
plt.show()

输出

回归图和残差图
回归图和残差图

过滤波克城市官网集

过滤波克城市官网集
过滤波克城市官网集

概括

有关在Seaborn中使用lmplot()和residplot()可视化回归模型的文章,演示了如何使用Seaborn软件包的Regression API中可用的这两个函数。通常,lmplot()函数比较两个不同的变量,而residplot()函数则测量回归模型的准确性。


相关话题

Seaborn的波克城市官网可视化

Python中的Pandas库简介

使用Python进行面向对象的编程

在分析IoT波克城市官网时应学习的Python库

Python中的NumPy简短教程

使用Pandas进行波克城市官网可视化

使用Seaborn可视化回归模型

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *