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

二次回归可视化图表异常,排序X值修复后原理咨询

二次回归绘图锯齿问题解析

我的二次回归代码如下:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
model =LinearRegression()
data =pd.read_csv("Regression.csv")

data['X^2'] =data['X']**2
print(data.head())
y =data['Y'].values
X =data.drop('Y',axis=1).values
print(X)
model.fit(X,y)
print(model.score(X,y))
predicted =model.predict(X)
plt.scatter(data['X'],data['Y'])
plt.plot(X[:,0],predicted)
plt.show()

模型得分高达0.9999827518179073,但绘制X与Y的回归关系图时图表呈锯齿状,效果很差,我期望得到类似Excel生成的平滑回归图表。添加代码data = data.sort_values("X")后,图表恢复正常,想请教该操作有效的原因。


原因解析

  • 原始数据中的X值是乱序的,plt.plot()函数是按照数据在数组中的原始顺序依次连接坐标点的。如果X值忽大忽小,对应的预测点连线就会在X轴上来回跳转,形成锯齿状线条。
  • data.sort_values("X")会将数据集按X值从小到大重新排序,此时X是连续递增的顺序,对应的预测值也会和有序的X一一对应。plt.plot()按这个顺序连接点时,就是顺着X轴从左到右平滑绘制,自然得到和Excel一样的平滑回归曲线。
  • 补充说明:线性回归(包括二次回归这类基于线性回归扩展的多项式回归)的拟合过程不依赖样本顺序,只关注特征与标签的对应关系,所以排序后模型的得分不会受到影响,仅改变了绘图时的点连接顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:52:14