我注意到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。
与 RidgeCV.cv_values_ 文档相反,从 RidgeCV源代码来看,记分器仅用于选择最佳超参数(集合self.alpha_和self.dual_coef_属性)。
因此,应该更改文档或源代码以使行为正确。在 scikit-learn错误跟踪器中提出问题可能是个好主意。
| 归档时间: |
|
| 查看次数: |
1417 次 |
| 最近记录: |