You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Matplotlib为线性回归程序添加散点图和最佳拟合线

多变量线性回归模型添加散点图与拟合线方案

你当前使用的是多输入特征的线性回归模型,无法直接在二维平面绘制所有特征对应的拟合关系,以下提供两种常用的绘图实现方案:


前置补全

首先需要补全你原有代码顶部缺失的导入语句:

import pandas as pd
import numpy as np
from sklearn import linear_model, model_selection
from matplotlib import pyplot as plt

方案1:单个输入特征与目标值的拟合图

以和目标值G3相关性最高的G1特征为例,控制其他输入特征为测试集均值,绘制单特征与目标值的散点+拟合线:

# 以下代码添加到原有代码末尾即可
# 选取G1特征作为x轴(对应x_test的第0列),可自行替换为其他特征的列索引
feature_x = x_test[:, 0]

# 绘制测试集实际值散点
plt.scatter(feature_x, y_test, color='steelblue', label='实际G3值')

# 生成拟合线的x取值范围
x_line = np.linspace(feature_x.min(), feature_x.max(), 100)
# 构造拟合线的输入特征数组:固定其他特征为测试集均值,仅变化G1的值
other_features_mean = x_test[:, 1:].mean(axis=0)
x_line_full = np.array([[x, *other_features_mean] for x in x_line])
# 预测拟合线对应的y值
y_line = linear.predict(x_line_full)

# 绘制最佳拟合线
plt.plot(x_line, y_line, color='tomato', linewidth=2, label='最佳拟合线')

# 配置图表信息
plt.xlabel('G1成绩')
plt.ylabel('G3最终成绩')
plt.title('G1成绩与最终成绩的拟合关系')
plt.legend()
plt.show()

如果要绘制其他特征和G3的拟合关系,只需修改feature_x = x_test[:, 0]里的列索引即可,索引对应关系如下:

  • 0:G1
  • 1:G2
  • 2:studytime
  • 3:failures
  • 4:absences

方案2:预测值与实际值的整体拟合效果

如果不需要关联单个输入特征,只想直观查看模型整体预测效果,可以直接绘制预测值和真实值的散点+参考拟合线:

# 以下代码添加到原有代码末尾即可
# 绘制实际值和预测值的散点
plt.scatter(y_test, predictions, color='steelblue', label='预测值 vs 实际值')
# 绘制完美拟合的参考线(y=x)
plt.plot([y.min(), y.max()], [y.min(), y.max()], color='tomato', linewidth=2, label='完美拟合参考线')

plt.xlabel('实际G3值')
plt.ylabel('预测G3值')
plt.title('模型预测效果拟合图')
plt.legend()
plt.show()

内容的提问来源于stack exchange,提问作者thunderOP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:36:02