我使用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"
答案 0 :(得分:2)
score
实例的LassoCV
方法返回R-Squared分数,该分数可能为负数。请参阅documentation:
最佳分数为1.0,较低的值更差......与大多数人不同 其他分数,R ^ 2得分可能是负数(它实际上不需要 数量的平方R)。
因此,负分数仅表示特定模型的表现非常糟糕。