使用 Matplotlib/Numpy 线性回归


为了获得线性回归图,我们可以使用 sklearn 的线性回归类,并且可以绘制散点图。

步骤

  • 使用 np.random.random((20, 1)) 获取 x 数据。在半开区间[20, 1)内返回随机浮点数。

  • 使用 np.random.normal() 方法获取 y 数据。从正态(高斯)分布中抽取随机样本。

  • 获取普通最小二乘法线性回归,即 model。

  • 拟合线性模型。

  • 使用 linspace() 方法,在指定区间内返回均匀间隔的数字。

  • 使用预测() 方法,使用线性模型预测。

  • 创建一个新图形,或激活一个现有的图形,使用给定的 figsize 元组 (4, 3)。

  • 使用 axes() 方法,将一个轴添加到当前图形并将其设为当前轴。

  • 使用不同标记大小和/或颜色绘制 *y* 与 *x* 的散点图。

  • 使用从第 5 步和第 6 步获得的 x_new 和 y_new 绘制直线。

  • 使用 plt.xlabel() 方法设置 x 轴标签。

  • 使用 plt.ylabel() 方法设置 y 轴标签。

  • 使用 ax.axis('tight') 调整轴属性。

  • 要显示图片,请使用 plt.show() 方法。

示例

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

x = 30 * np.random.random((20, 1))

y = 0.5 * x + 1.0 + np.random.normal(size=x.shape)

model = LinearRegression()
model.fit(x, y)

x_new = np.linspace(0, 30, 100)
y_new = model.predict(x_new[:, np.newaxis])

plt.figure(figsize=(4, 3))
ax = plt.axes()
ax.scatter(x, y)
ax.plot(x_new, y_new)

ax.set_xlabel('x')
ax.set_ylabel('y')

ax.axis('tight')

plt.show()

输出

更新于:2021 年 3 月 16 日

9K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始
广告