Python 3.x 如何绘制多项式回归的递增学习曲线
我试图在使用多项式特性和以下代码后绘制拟合曲线,但结果不正确。如何仅绘制单个拟合曲线Python 3.x 如何绘制多项式回归的递增学习曲线,python-3.x,matplotlib,scikit-learn,linear-regression,non-linear-regression,Python 3.x,Matplotlib,Scikit Learn,Linear Regression,Non Linear Regression,我试图在使用多项式特性和以下代码后绘制拟合曲线,但结果不正确。如何仅绘制单个拟合曲线 import matplotlib.pyplot as plt import numpy as np m = 100 X = 6 * np.random.rand(m,1) - 3 Y = 0.5 * X**2 + X + 2 + np.random.randn(m,1) from sklearn.preprocessing import PolynomialFeatures from sklearn.li
import matplotlib.pyplot as plt
import numpy as np
m = 100
X = 6 * np.random.rand(m,1) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m,1)
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
poly_features = PolynomialFeatures(degree=2,include_bias=False)
X_poly = poly_features.fit_transform(X)
lin = LinearRegression()
lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)
plt.scatter(X, Y)
plt.plot(X_poly,Y_pred,color='red')
plt.show()
试试:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
m = 100
X = 6 * np.random.rand(m) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m)
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
poly_features = PolynomialFeatures(degree=2,include_bias=False)
X_poly = poly_features.fit_transform(X.reshape(-1,1))
lin = LinearRegression()
lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)
idx = X.argsort()
plt.scatter(X, Y)
plt.plot(X[idx],Y_pred[idx],color='red')
plt.show()
这就像一个魔术,但你能告诉我我做错了什么,它是如何解决的吗?你应该注意你提供给
plt.plot
的参数顺序。我命令它,增加,因此线从左到右平滑地移动。你没有。因此,在你的间歇时间里,你的线从一点到另一点是随机的。另外,我稍微改变了输入数组的维数,从(m,1)到(m,)。这并不重要,但代码更简洁。如果您愿意,我可以重新编辑您的尺寸。