matplotlib - 为什么我画的 3 次多项式这么奇怪?

标签 matplotlib machine-learning scikit-learn

我正在使用 scikit learn 学习线性回归和多项式回归。我生成了 2 次多项式数据集,并训练了 3 次多项式模型。我希望与原始数据过度拟合。但该图看起来并不像 3 度曲线。如果我将度数更改为 1,它会显示一条很好的线。我在这里缺少什么?

# over fit
poly_features_3 = PolynomialFeatures(degree=3, include_bias=False)
X_poly_3 = poly_features_3.fit_transform(X)
lin_reg_3 = LinearRegression()
lin_reg_3.fit(X_poly_3, y)
y_predict = lin_reg_3.predict(X_poly_3)
plt.scatter(X, y, color='black')
plt.plot(X, y_predict, color='red')
plt.show()

enter image description here

最佳答案

这些值未排序,因此绘图会来回跳转。

我猜你想绘制

plt.plot(np.sort(X), y_predict[np.argsort(X)], color='red')

关于matplotlib - 为什么我画的 3 次多项式这么奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44990386/

相关文章:

python - 在 Python 中计算矢量场的旋度并使用 matplotlib 绘制它

python - 几分钟后 numpy plot 创建图形失败 idel

r - 如何使用 spread() reshape 数据框时解决错误

python - 作为 PC 算法的一部分在 python 中测试条件独立性

mysql - 对 mysql 中的列应用鲁棒缩放

python - 如何从 skopt/BayesSearchCV 搜索中绘制学习曲线

python - 处理 scikit-learn tree.decisiontreeclassifier 中的维度

python - "import matplotlib.pyplot as plt"时出错

python /Matplotlib : How to plot in a subplot with ticks but no tick labels?

python - 如何从语料库中删除无意义或不完整的单词?