scikit-learn RidgeCV 评分选项不起作用

5 python scikit-learn

我注意到cv_values_无论scoring选项如何,来自 RidgeCV 的值始终处于相同的指标中。下面是一个例子:

from sklearn.linear_model import RidgeCV
from sklearn.datasets import load_boston

boston = load_boston()

mod = RidgeCV(store_cv_values = True, scoring = 'r2')
fit = mod.fit(boston.data, boston.target)
print(fit)
print(fit.cv_values_)

mod = RidgeCV(store_cv_values = True, scoring = 'neg_mean_squared_error')
fit = mod.fit(boston.data, boston.target)
print(fit)
print(fit.cv_values_)
Run Code Online (Sandbox Code Playgroud)

输出是:

RidgeCV(alphas=(0.1, 1.0, 10.0), cv=None, fit_intercept=True, gcv_mode=None,
    normalize=False, scoring='r2', store_cv_values=True)
[[ 7.61705436  7.83092421  8.2298466 ]
 [ 2.50029583  2.31181064  2.11665248]
 [ 7.98280614  7.95286299  7.87166914]
 ..., 
 [ 5.24271689  5.50191347  5.84802692]
 [ 3.7448827   4.01778493  4.40457956]
 [ 0.0859419   0.37219929  0.89447484]]
RidgeCV(alphas=(0.1, 1.0, 10.0), cv=None, fit_intercept=True, gcv_mode=None,
    normalize=False, scoring='neg_mean_squared_error',
    store_cv_values=True)
[[ 7.61705436  7.83092421  8.2298466 ]
 [ 2.50029583  2.31181064  2.11665248]
 [ 7.98280614  7.95286299  7.87166914]
 ..., 
 [ 5.24271689  5.50191347  5.84802692]
 [ 3.7448827   4.01778493  4.40457956]
 [ 0.0859419   0.37219929  0.89447484]]
Run Code Online (Sandbox Code Playgroud)

如您所见,cv_values_即使我指定了不同的scoring. 在第一种情况下,我会期望cv_values_r2指标中。我错过了一些明显的东西吗?我对 scikit-learn 很陌生。这是在 Python 3.5.2 上运行的 scikit-learn 0.18.1。

Mik*_*bov 4

与 RidgeCV.cv_values_ 文档相反,从 RidgeCV源代码来看,记分器仅用于选择最佳超参数(集合self.alpha_self.dual_coef_属性)。

因此,应该更改文档或源代码以使行为正确。在 scikit-learn错误跟踪器中提出问题可能是个好主意。