Evan 2018-09-05
器学习中,我们使用交叉验证,这有助于使用最佳超参数训练模型。如果我们说我们的模型在看不见的数据点上表现良好,那么它可以很好地推广。
我们在这篇文章中使用了K-nn算法。
我看到很多人特别是入门级人士提出这个问题。我将详细解释为什么不应该使用测试数据。考虑随机抽样的数据集来训练和测试数据。
表列出测试数据的准确度值
在这里,我们使用测试数据来确定最佳超参数。
考虑到k = 3,我们得到了最高的准确度。然后我们用k = 3训练数据作为超参数。我们认为我们得到了最好的模型。
问题:我们在这里忽略了基本目标,这里的基本目标是在看不见的数据点上表现良好。实际上我们正在将测试数据暴露给算法,这对于算法来说很难推广。
解决方案:交叉验证的作用。我们从数据中创建另一个随机样本,即验证数据。我们使用验证数据来获得最佳超参数。
当验证数据用于查找最佳超参数时。测试数据充当训练模型的看不见的数据点。现在,当我们测量测试数据的准确性时,我们将确保它能够很好地概括并在未来看不见的数据点上表现良好。