使用 Matplotlib/Numpy 进行线性回归

numpymatplotlibserver side programmingprogramming更新于 2025/8/8 5:07:17

要绘制线性回归图,我们可以使用 sklearn 的线性回归类,然后绘制散点图。

步骤

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

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

  • 获取最小二乘线性回归模型。

  • 拟合线性模型。

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

  • 使用 predict() 方法,利用线性模型进行预测。

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

  • 使用axes() 方法向当前图形添加一个轴并将其设为当前坐标区。

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

  • 使用步骤 5 中获得的 x_new 和 y_new 绘制直线,并6.

  • 使用 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()

输出