【问题标题】:Which standard deviation of the cross-validation score?交叉验证分数的标准差是多少?
【发布时间】:2016-04-27 03:16:16
【问题描述】:

在进行模型选择的交叉验证时,我发现有很多方法可以引用交叉验证分数的“标准差”(这里的“分数”是指评估指标,例如准确度、AUC、损失等)

1) 一种方法是计算 K 折分数的平均值的标准偏差(= K 折的标准偏差 / sqrt(K))。

2) 第二种方法是只计算K折分数的标准差。可以在这里找到一个例子:

http://scikit-learn.org/stable/auto_examples/svm/plot_svm_anova.html

3) 另一种我不完全理解的方式。好像是计算 K folds / sqrt(N) 的标准差,其中 N 是数据集的大小...

http://scikit-learn.org/stable/auto_examples/exercises/plot_cv_diabetes.html

我个人认为 1) 是正确的,因为我们更关心样本均值的标准误差(这里 = K 折验证的平均分数)而不是样本的标准差。谁能解释一下首选哪种方式?

【问题讨论】:

  • 也许您有更多机会在cross-validated 获得答案。就我个人而言,我也会使用数字 1,但我无法详细说明为什么与其他人相比应该首选它。
  • 为什么在第一个选项中除以 sqrt(k)

标签: machine-learning statistics scikit-learn standard-error


【解决方案1】:

在这些情况下并没有太大的矛盾。

  1. K folds / sqrt(K)的标准差是分数的标准差
  2. 在提到的链接中,他们使用标准差而不是分数的标准误差。
  3. 在这个链接中,他们像 1) 一样计算标准误差,但他们使用变量名“n_folds”而不是“k”。 在这种情况下,N (n_folds) 不是数据集的大小。

标准差是分数变化的度量(如果计算一个分数(对于 k 折之一))。 标准误是对 k 折分数均值变化的度量。

在寻找分数的“真”值时,这样使用标准误:

分数的真实值为

  • 在(平均值 - 标准误差)到(平均值 + 标准误差)范围内的概率约为 68%
  • 在 (mean - 2*standard error) 到 (mean + 2standard error) 范围内的概率约为 95%

(这些范围称为置信区间。)

【讨论】:

    猜你喜欢
    • 2016-06-12
    • 2023-02-03
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2018-09-07
    • 2015-12-11
    相关资源
    最近更新 更多