我做了一段代码来预测Y值,X和Y是长度相同的数组
from sklearn.linear_model import Ridge
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline
plt.scatter(X,Y,1)
regr2 = make_pipeline(PolynomialFeatures(10), Ridge())
regr2 =regr2.fit(X[:,np.newaxis], Y)
y_pred=regr2.predict(X[:,np.newaxis])
plt.plot(X, y_pred, color='red')
plt.show()
它可以工作,并且是一个很好的近似值 但是,当我使用测试值和训练值进行绘制时,在绘制它时它会显示指数,这是不应该做的。
实际上y_pred1是X_test加上一个小十进制数字
plt.scatter(X_test,Y_test,1)
X_train=X[0:int(0.8*len(X))]
X_test=X[int(0.8*len(X)):]
Y_train=Y[0:int(0.8*len(X))]
Y_test=Y[int(0.8*len(X)):]
regr3 = make_pipeline(PolynomialFeatures(10), Ridge())
regr3 =regr3.fit(X_train[:,np.newaxis], Y_train)
y_pred1=regr3.predict(X_test[:,np.newaxis])
plt.plot(X_test, y_pred1, color='red')
plt.show()
我尝试了几件事,甚至用火车值测试了预测,在这种情况下,它也绘制了指数而不是点的近似值。
提前谢谢!
答案 0 :(得分:0)
修复Y_train
Y_train=Y[0:int(0.8*len(X))]