【问题标题】:Parameter tuning/model selection using resampling使用重采样的参数调整/模型选择
【发布时间】:2016-11-16 06:13:30
【问题描述】:

我一直在尝试了解重采样方法的更多细节,并在一个包含 1000 行的小型数据集上实现它们。数据分为 800 个训练集和 200 个验证集。我使用 K-fold 交叉验证和重复 K-fold 交叉验证来使用训练集训练 KNN。根据我的理解,我对结果做了一些解释——但是,我对它们有一定的怀疑(见下面的问题):

结果: 10 折 Cv

Resampling: Cross-Validated (10 fold) 
Summary of sample sizes: 720, 720, 720, 720, 720, 720, ... 
Resampling results across tuning parameters:

  k  Accuracy  Kappa     
  5  0.6600    0.07010791
  7  0.6775    0.09432414
  9  0.6800    0.07054371

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was k = 9.

重复 10 次重复 10 次

Resampling results across tuning parameters:

  k  Accuracy  Kappa     
  5  0.670250  0.10436607
  7  0.676875  0.09288219
  9  0.683125  0.08062622

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was k = 9.

10 倍,1000 次重复

  k  Accuracy   Kappa     
  5  0.6680438  0.09473128
  7  0.6753375  0.08810406
  9  0.6831800  0.07907891

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was k = 9. 

10 倍,2000 次重复

  k  Accuracy   Kappa     
  5  0.6677981  0.09467347
  7  0.6750369  0.08713170
  9  0.6826894  0.07772184

怀疑

  1. 在选择参数时,K=9 是最高精度的最佳值。但是,我不明白在最终选择参数值时如何考虑Kappa

  2. 重复次数必须增加,直到我们得到稳定的结果,当重复次数从 10 增加到 1000 时,精度会发生变化。但是,1000 次重复和 2000 次重复的结果相似。将 1000/2000 次重复的结果视为稳定的性能估计是否正确?

  3. 任何重复编号的经验法则?

  4. 最后,我应该在我的完整训练数据(800 行)上训练模型,现在测试验证集的准确性吗?

【问题讨论】:

    标签: machine-learning cross-validation resampling


    【解决方案1】:
    1. AccuracyKappa 只是不同的分类性能指标。简而言之,他们的区别在于Accuracydoes not take possible class imbalance into account在计算指标时,while Kappa does。因此,对于不平衡的类,您最好使用Kappa。使用 R caret,您可以通过 train::metric 参数执行此操作。

    2. 运行时,您可能会看到性能结果略有不同的类似效果,例如具有 10 次重复的 10CV - 你也会得到稍微不同的结果。您应该注意的是分区和重复上的分类性能的方差。如果您获得一个小的方差,您可以通过对所有数据进行训练来得出您的结论,您可能会获得一个模型,该模型将为您提供新数据的相似(因此稳定)结果。但是,如果您获得了巨大的差异,您可以得出结论,您可能会碰巧(幸运或不幸)获得一个模型,该模型在新数据上的表现要么相当好,要么相当差。顺便说一句:预测性能差异是例如R caret::train 会自动给你,所以我建议你使用它。

    3. 见上文:查看方差并增加重复次数,直到可以,例如重复整个过程并获得相似的平均性能和性能方差。

    4. 是的,CV 和重采样方法可以为您提供信息关于您的模型在新数据上的表现如何。因此,在执行 CV 和重新采样并获取此信息之后,您通常会使用 所有数据 来训练您在例如您的示例中使用的最终模型。应用场景(包括训练和测试分区!)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 2017-04-21
      • 2018-09-28
      • 1970-01-01
      相关资源
      最近更新 更多