预测外部测试集的最佳方法是什么?

时间:2019-08-14 21:21:14

标签: machine-learning keras scikit-learn

我的问题在理论上是技术性的,因此,由于在sklearn网站本身上提供了代码,所以我不在此处发布代码。

我构造了一个分类器,并使用sklearn进行了5倍交叉验证。在我的代码中,我正在计算各种准确度参数,例如敏感性,特异性,f1得分等。 5折交叉验证完成后,对所有准确性参数取平均值。

最后,我的脚本创建了ROC曲线以及其他精度参数的AUC得分和直方图,并生成了HTML报告文件。

交叉验证意味着内部测试,但是当我使用外部测试数据集时,就会开始混乱。

我的问题是我应该如何预测外部数据集,这在以下方法中是正确的。

  1. 在交叉验证后,保存具有每次折叠平均参数的模型,并使用该模型预测外部测试集并计算评估报告。如果是这种情况,我该怎么办?您能否向我展示示例代码,该代码可帮助我在进行n折交叉验证后保存模型?

  2. 使用整个数据集构建模型,保存模型以预测外部测试集并计算评估报告。如果这是正确的方法,谢谢,我知道代码。

  3. 还有其他我错过的方法,请分享。

谢谢。

1 个答案:

答案 0 :(得分:1)

正确的方法是

  

使用整个数据集构建模型,保存模型以进行预测   外部测试集并计算评估报告

原因是我们仅使用交叉验证来衡量超参数的性能。为此,我们将所有折痕保留为一次测试折痕,这意味着每个数据点都有相当大的机会成为测试数据点。