- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
修复讨论的可重现示例:
from sklearn.linear_model import RidgeCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import scale
boston = scale(load_boston().data)
target = load_boston().target
import numpy as np
alphas = np.linspace(1.0,200.0, 5)
fit0 = RidgeCV(alphas=alphas, store_cv_values = True, gcv_mode='eigen').fit(boston, target)
fit0.alpha_
fit0.cv_values_[:,0]
问题:使用什么公式计算 fit0.cv_values_
?
@Abhinav Arora 下面的回答似乎表明 fit0.cv_values_[:,0][0]
,fit0.cv_values_[:,0]
的第一个条目会是
(fit1.predict(boston[0,].reshape(1, -1)) - target[0])**2
其中 fit1
是 alpha = 1.0 的岭回归,适用于从中移除观察值 0
的数据集。
让我们看看:
1) 创建新数据集,删除原始数据集的第一行:
from sklearn.linear_model import Ridge
boston1 = np.delete(boston, (0), axis=0)
target1 = np.delete(target, (0), axis=0)
2) 在这个截断的数据集上拟合一个 alpha = 1.0 的山脊模型:
fit1 = Ridge(alpha=1.0).fit(boston1, target1)
3) 检查第一个数据点上该模型的 MSE:
(fit1.predict(boston[0,].reshape(1, -1)) - target[0])**2
它是 array([ 37.64650853])
与 fit0.cv_values_[:,0]
生成的不同,因此:
fit0.cv_values_[:,0][0]
这是 37.495629960571137
什么给了?
最佳答案
引用自 Sklearn 文档:
Cross-validation values for each alpha (if store_cv_values=True and cv=None). After fit() has been called, this attribute will contain the mean squared errors (by default) or the values of the {loss,score}_func function (if provided in the constructor).
由于您没有在构造函数中提供任何评分函数,也没有为构造函数中的 cv
参数提供任何内容,因此该属性应该使用 Leave-One out 存储每个样本的均方误差交叉验证。均方误差的一般公式是
其中 Y(带上限)是回归变量的预测值,另一个 Y 是真实值。
在您的情况下,您正在进行留一法交叉验证。因此,在每一折中,您只有 1 个测试点,因此 n = 1。因此,在您的情况下,执行 fit0.cv_values_[:,0]
只会为您提供每个点的平方误差当它是测试折叠的一部分并且 alpha 值为 1.0 时的训练数据集
希望对您有所帮助。
关于python - sklearn.linear::RidgeCV 中的 cv_values_ 是如何计算的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752899/
我注意到无论 scoring 选项如何,RidgeCV 的 cv_values_ 始终处于相同的度量中。这是一个例子: from sklearn.linear_model import RidgeCV
我对 sklearn.linear_model 中 RidgeCV 中 normalized= 的具体作用感到困惑。 文档说: normalize : bool, default=False This
我想使用 scikit-learn LassoCV/RidgeCV,同时在每个折叠训练集上应用“StandardScaler”。我不想在交叉验证之前应用缩放器以避免泄漏,但我无法弄清楚应该如何使用 L
我需要实现Lasso和Ridge回归,并通过交叉验证的方式计算超参数。我找到了执行此操作的代码,但我不太理解它。 lassocv = LassoCV(alphas=None, cv=15, max_i
修复讨论的可重现示例: from sklearn.linear_model import RidgeCV from sklearn.datasets import load_boston from s
这是我的X: X = np.array([[ 5., 8., 3., 4., 0., 5., 4., 0., 2., 5., 11.,
当评分设置为 r2_score 指标时,我试图理解存储在 Scikit-Learn 的 RidgeCV 的 cv.values_ 对象中的值。 根据 documentation对于 Scikit-Le
我是一名优秀的程序员,十分优秀!