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

goe*_*ash 1 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)
Run Code Online (Sandbox Code Playgroud)

我正在使用来自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 值?

这根本无济于事 - “mean_squared_error”的负值

jme*_*jme 5

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

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

因此,负分仅意味着特定模型的性能非常差。