概念
seaborn.regplot()函数可以在两个变量之间绘制一个线性回归模型,可以输出线性回归线以及数据的散点图。
参数解释
seaborn.regplot(data=None, x=None, y=None,
x_estimator=None, x_bins=None,
x_ci='ci', scatter=True, fit_reg=True,
ci=95, n_boot=1000, units=None,
seed=None, order=1, logistic=False,
lowess=False, robust=False, logx=False,
x_partial=None, y_partial=None, truncate=True,
dropna=True, x_jitter=None, y_jitter=None,
label=None, color=None, marker='o',
scatter_kws=None, line_kws=None, ax=None)
- X、Y: 这些是输入变量。如果是字符串,则这些应与“data”部分中的列名匹配。
- data:是DateFrame类型,其中每列都是一个变量,每行是一个观测值。
- x_estimator:将此函数应用于x的每个唯一值并绘制结果估计值。当x是离散变量时,这很有用。如果给定x_ci,则此估计值将自举并绘制置信区间
- x_bins:将x分成多少段
- x_ci:绘制 的离散值的集中趋势时使用的置信区间的大小。
- scatter:如果为True,绘制包含基础观测值(或值)的散点图。
- fit_reg:如果为True,估计并绘制与 和 变量相关的回归模型。
- ci:回归估计值的置信区间大小。这将使用回归线周围的半透明波段来绘制。置信区间是使用 bootstrap 估计的;对于大型数据集,建议通过将此参数设置为“无”来避免该计算。
- order:如果大于 1,则用于估计多项式回归。
- logistic:如果为True,假设这是一个二元变量,并用于估计逻辑回归模型。请注意,这与线性回归相比,计算量要大得多,因此您可能希望减少 bootstrap 重新采样 () 的数量或设置为 None。
- robust:用于估计稳健回归。这将减少异常值的权重。请注意,这与标准线性回归相比,计算量要大得多,因此您可能希望减少 bootstrap 重采样 () 的数量或设置为 None。
- marker:用于散点图字形的标记。
- color:应用于所有绘图元素的颜色。
- label:用于图例的散点图或回归线的标签。
- {scatter,line}_kws:要传递给plt.scatter和plt.plot的其他关键字参数。
- ax:Axes 对象来绘制绘图,否则使用当前 Axes。
代码实现
单个
#可视化数据以及线性回归模型
fig,ax = plt.subplots(figsize=(12,6))
ax = plt.subplot(1,2,1)
sns.regplot(x=data_train["V0"],y=data_train["target"],
scatter_kws={"marker":".","s":3,"alpha":0.3},
line_kws={"color":"k"})
plt.xlabel("V0")
plt.ylabel("target")
ax = plt.subplot(1,2,2)
sns.distplot(data_train['V0'])
plt.xlabel("V0")
plt.show()
多个
def plot_reg(data):
column = data.columns.tolist()[:data.shape[1]]
fig,ax = plt.subplots(figsize=(12,208))
for i in range(0,77,2):
ax = plt.subplot(13,6,i+1)
sns.regplot(x=data[column[i//2]],y=data["target"],
scatter_kws={"marker":".","s":3,"alpha":0.3},
line_kws={"color":"k"})
ax = plt.subplot(13,6,i+2)
sns.distplot(data[column[i//2]])
plt.show()
plot_reg(data_train)