如何正确验证机器学习模型?
How to correctly validate a machine learning model?
我对模型验证感到困惑。
我为 6 种不同的算法做了什么:
--> 将我的数据集分隔为 75/25 (training/test) --> 我保持原样的测试。
-->我对训练集做了以下操作:
- 分成 4 倍(外部)并执行嵌套重复(五次)十倍(内部)交叉验证。通过随机搜索 10 次进行超参数调优。 (留一法)
- 提取指标(ROC 曲线、acc、特异性等)并获得最佳模型的参数。
现在的问题是:
我还有一个未触及的测试集(从一开始的拆分),我应该如何处理它?直接应用于最佳模型并查看性能?或使用整个训练集重新训练具有最佳参数的最佳模型,然后应用测试集?
还是这里一切都错了?
你明白了。这是一般规则:
- 从6个模型中选出最好的一个。我看到你的K是4,建议是10或20。
- 在所有部分(整个训练集)上再次重新训练最佳模型。 (信任已经通过交叉验证建立)。
- 预测测试集。
我对模型验证感到困惑。
我为 6 种不同的算法做了什么:
--> 将我的数据集分隔为 75/25 (training/test) --> 我保持原样的测试。
-->我对训练集做了以下操作:
- 分成 4 倍(外部)并执行嵌套重复(五次)十倍(内部)交叉验证。通过随机搜索 10 次进行超参数调优。 (留一法)
- 提取指标(ROC 曲线、acc、特异性等)并获得最佳模型的参数。
现在的问题是:
我还有一个未触及的测试集(从一开始的拆分),我应该如何处理它?直接应用于最佳模型并查看性能?或使用整个训练集重新训练具有最佳参数的最佳模型,然后应用测试集?
还是这里一切都错了?
你明白了。这是一般规则:
- 从6个模型中选出最好的一个。我看到你的K是4,建议是10或20。
- 在所有部分(整个训练集)上再次重新训练最佳模型。 (信任已经通过交叉验证建立)。
- 预测测试集。