使用下面的代碼我只想擬合迴歸曲線來對未按預期工作的數據進行採樣。使用PolynomialFeatures和LinearRegression的流水線 - 意外的結果
X = 10*np.random.rand(100)
y= 2*X**2+3*X-5+3*np.random.rand(100)
xfit=np.linspace(0,10,100)
poly_model=make_pipeline(PolynomialFeatures(2),LinearRegression())
poly_model.fit(X[:,np.newaxis],y)
y_pred=poly_model.predict(X[:,np.newaxis])
plt.scatter(X,y)
plt.plot(X[:,np.newaxis],y_pred,color="red")
plt.show()
Shouldnt't會有一個曲線,該曲線是完全擬合到數據點?因爲訓練數據(X [:,np.newaxis])和用於預測y_pred的數據相同(也是(X [:,np.newaxis])。
如果我改用xfit數據預測模型爲所期望的結果...
...
y_pred=poly_model.predict(xfit[:,np.newaxis])
plt.scatter(X,y)
plt.plot(xfit[:,np.newaxis],y_pred,color="red")
plt.show()
因此,whats的問題,這樣的行爲的解釋?