请帮助您解决以下问题:
我已经使用套索建立了以下模型:
lassomodel = PolynomialLasso(4)
x=dfs[['WSales']]
y=dfs[['DSales']]
lassomodel.fit(x, y)
X_lasso=np.linspace(0,4000000,100)[:, None]
y_lasso = lassomodel.predict(X_lasso)
mse=mean_squared_error(lassomodel.predict(x), y)
r2=r2_score(lassomodel.predict(x),y)
print ("Ridge Mean Square Error: ",mse)
print ("Ridge R2-score: ",r2 )
print('Mean absolute error: %.2f' % mean_absolute_error(lassomodel.predict(x), y))
print ("------------------------------------")
plt.plot(X_lasso.ravel(), y_lasso, color='C3',label='y_lasso')
plt.plot(x,y, 'ro', label='y', color='C1')
plt.xlabel(r'$x$')
plt.ylabel(r'$y$')
plt.title(r'Linear Regression - 4.order polynomial')
plt.legend()
plt.show()
Ridge Mean Square Error: 48063700655.292915
Ridge R2-score: 0.726828587296103
Mean absolute error: 165786.75
我的问题是-如果我要使用建立的模型使用x值3000000(例如)来预测y,我该怎么做(我应该运行什么代码)?
答案 0 :(得分:0)
模型期望值的数组,而不是单个值,但是您可以通过将其作为单个值的数组传递来欺骗它。例如,对于单个值3500000.0
lassomodel.predict(np.array(3500000.0).reshape(-1, 1))