如何理解机器学习算法的训练集、验证集和测试集

我们在构建机器学习模型算法时,如何选择最优模型是一个不可避免的难题。若能正确理解训练集、验证集和测试集的含义以及如何划分数据集,那么你将会对如何构建机器学习模型有了一个宏观的理解,并对自己构建的最优模型会有一定的信心。本文清晰易懂的介绍了训练集、验证集和测试集的含义以及如何划分数据集。

1.训练集

训练集:用于构建模型的数据样本

训练集(Training data)是我们用来构建模型的数据集,如一元线性回归的参数w和b,神经网络的权值w和偏差b。

2.验证集

验证集是对训练集构建的机器学习模型进行的无偏差估计,若数据集仅包含训练集,无验证集,那么数据集构建的模型是有偏差的,评估的最优模型是不可靠的。

无偏差的含义:多次输出验证集(Validation data)的准确率并求其平均值,该平均值等于模型的真实准确率。

训练集构建模型(得到模型的参数),验证集选择最优模型(得到模型的最优参数。

3.测试集

测试集用来测试模型的泛化能力,若测试准确率不高(泛化能力不强),那么训练集和验证集构建的最优模型是失败的

测试集(Test data)常用于比较不同模型的优劣度,比如在许多的kaggle比赛中,比赛最初只给了训练集和验证集,当比赛快要结束时,再用测试数据集来决定谁的模型更好。

测试数据集如此重要,因此我们在实际项目中不能随机的选择数据集,而是首先分析数据,并选择能够代表数据所有分布的测试集,这样的准确率才能决定模型是否优劣的金标准。

数据集划分如下图:

4.数据集如何划分

数据集划分标准取决于两点:(1)数据集样本容量,(2)训练的机器学习模型。

有些模型需要大量的数据集,所以这种情况下,你需要更大的训练集去构建模型。

若模型参数较少时,那么可以选择较少的验证集样本,因为可优化的模型参数较少;若模型参数较多时,则需要很多的验证集样本来优化模型参数。

当然,若选择的模型无参数时,验证集可能也就没有必要了。

若数据集较少且不足以划分训练集、验证集和测试集时,我们就采取交叉验证方法来选择训练集和验证集,因为验证集评估的模型是无偏差的,在数据集较少的前提下,交叉验证方法也是一种比较实用的方法。

K折交叉验证方法:数据集平均划分为K个数据集,其中的(K-1)个数据集组成训练集,余下的数据集为验证集,输出验证集准确率,共循环K次,得到K个验证集准确率并求该平均验证集准确率,该准确率用来选择最优模型的参数。

原理图如下:

5.总结

本文简洁的介绍了训练集、验证集和测试集的含义,以及如何划分数据集。小编也提到了无偏差含义,因为它解释了为何要划分验证集,也是交叉验证方法的理论根据。

欢迎扫码关注:

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页