gpt4 book ai didi

python-3.x - 使用 Scikit-Learn 在 Python 中绘制多项式回归

转载 作者:行者123 更新时间:2023-11-30 08:46:15 25 4
gpt4 key购买 nike

我正在编写一个Python代码,用于使用[0,1]范围内的函数sin(2.pi.x)来调查过度拟合。我首先通过使用 mu=0 和 sigma=1 的高斯分布添加一些随机噪声来生成 N 个数据点。我使用 M 次多项式拟合模型。这是我的代码

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

# generate N random points
N=30
X= np.random.rand(N,1)
y= np.sin(np.pi*2*X)+ np.random.randn(N,1)

M=2
poly_features=PolynomialFeatures(degree=M, include_bias=False)
X_poly=poly_features.fit_transform(X) # contain original X and its new features
model=LinearRegression()
model.fit(X_poly,y) # Fit the model

# Plot
X_plot=np.linspace(0,1,100).reshape(-1,1)
X_plot_poly=poly_features.fit_transform(X_plot)
plt.plot(X,y,"b.")
plt.plot(X_plot_poly,model.predict(X_plot_poly),'-r')
plt.show()

Picture of polynomial regression

我不知道为什么我有 M=2 行第 m 多项式行?我认为无论M如何,它都应该是1行。你能帮我解决这个问题吗?

最佳答案

多项式特征变换后的数据的形状为 (n_samples,2)。因此 pyplot 用两列绘制预测变量。

将绘图代码更改为

plt.plot(X_plot_poly[:,i],model.predict(X_plot_poly),'-r')
where i your column number

关于python-3.x - 使用 Scikit-Learn 在 Python 中绘制多项式回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com