套索。如何用它来预测?

时间:2019-08-20 17:46:40

标签: python scikit-learn

请帮助您解决以下问题:

我已经使用套索建立了以下模型:

已经研究过文档 https://scikit-learn.org/stable/auto_examples/linear_model/plot_lasso_coordinate_descent_path.html#sphx-glr-auto-examples-linear-model-plot-lasso-coordinate-descent-path-py

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,我该怎么做(我应该运行什么代码)?

1 个答案:

答案 0 :(得分:0)

模型期望值的数组,而不是单个值,但是您可以通过将其作为单个值的数组传递来欺骗它。例如,对于单个值3500000.0

lassomodel.predict(np.array(3500000.0).reshape(-1, 1))