使用python sklearn预测测试值时出现问题

时间:2018-11-02 16:05:08

标签: python scikit-learn

我做了一段代码来预测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()

我尝试了几件事,甚至用火车值测试了预测,在这种情况下,它也绘制了指数而不是点的近似值。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

修复Y_train

Y_train=Y[0:int(0.8*len(X))]