在scikit-learn中使用LassoCV.score()获得负分

时间:2014-12-20 17:33:51

标签: python scikit-learn

我使用LassoCV测试了2个模型,一个没有任何明确的alphas列表,另一个使用alphas列表 -

Model1 = LassoCV(alphas=None, copy_X=True, cv=None, eps=0.001, fit_intercept=True,
max_iter=1000, n_alphas=100, normalize=True, precompute='auto',
tol=0.0001, verbose=False)

Model2 = LassoCV(alphas=[0.1, 0.2, 0.4, 1.0, 10.0], copy_X=True, cv=None, eps=0.001,
fit_intercept=True, max_iter=1000, n_alphas=100, normalize=True,
precompute='auto', tol=0.0001, verbose=False)

我正在使用 sklearn.datasets 中的糖尿病数据集以及此示例中的数据分区方案 - http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#example-linear-model-plot-ols-py

对两者使用modelX.score各自的错误是 -

模型1: 0.47235439555084802

模型2: -0.15271790306245214

在检查alpha值时,我发现对于Model1,它是 0.0021734898275546505 ,而对于Model2,它是 10.0

为什么它会得到负的RMS值?

这根本没有帮助 - negative value for "mean_squared_error"

1 个答案:

答案 0 :(得分:2)

score实例的LassoCV方法返回R-Squared分数,该分数可能为负数。请参阅documentation

  

最佳分数为1.0,较低的值更差......与大多数人不同   其他分数,R ^ 2得分可能是负数(它实际上不需要   数量的平方R)。

因此,负分数仅表示特定模型的表现非常糟糕。