我一直在尝试深入了解重采样方法的细节,并在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
质疑:
选择参数时,K=9
是获得最高精度的最佳值。但是,我不明白在最终选择参数值时如何考虑Kappa
?
重复数必须增加,直到我们得到稳定的结果,当重复从10增加到1000时,准确度会发生变化。但是,结果类似于1000次重复和2000次重复。将1000/2000重复的结果考虑为稳定的绩效估计是否正确?
重复号码的任何拇指规则?
最后,我应该在完整的训练数据(800行)上训练模型,现在测试验证集的准确性吗?
答案 0 :(得分:0)
Accuracy
和Kappa
只是不同的分类效果指标。简而言之,它们的区别在于Accuracy
does not take possible class imbalance into account在计算指标时while Kappa
does。因此,对于不平衡的类,最好使用Kappa
。使用R caret
,您可以通过train::metric
参数执行此操作。
在运行时,您可以看到效果略有不同的效果10CV多次重复10次 - 你也会得到略有不同的结果。您应该注意的是分区和重复的分类性能的方差。如果您获得较小的差异,您可以通过对所有数据进行培训来推导出您,您可能会获得一个模型,该模型将为您提供与新数据相似(因此稳定)的结果。但是,如果你获得了巨大的差异,你可以偶然得出(幸运或不幸),你可能会获得一个模型,要么在新数据上给你相当好或相当差的表现。 BTW:预测性能差异是例如R caret::train
会自动给你,因此我建议你使用它。
见上文:查看差异并增加重复次数,直到您可以重复整个过程并获得类似的平均性能和性能差异。
是的,存在CV和重新采样方法,为您提供信息,了解您的模型对新数据的执行情况。因此,在执行简历和重新取样并获取此信息后,您通常会使用所有数据来训练您在自己的数据中使用的最终模型。应用场景(包括火车和测试分区!)。