training set, validation set, test set的区别

本文解释了机器学习中训练集(trainingset)、验证集(validationset)及测试集(testset)的作用。训练集用于模型训练;验证集用于模型选择,通过比较不同模型在验证集上的表现选择最佳模型;测试集用于评估选定模型的实际性能。
AI助手已提取文章相关产品:

首先安利一下一个机器学习的入门在线课程:台湾大学机器学习

以及关于上面这个问题的一个解答:解答

大四做毕设的时候就有这个问题,当时没想明白,后面一直疑惑不解,直到今天才搞懂。

首先写一下结论:

  1. training set: 用来训练模型
  2. validation set : 用来做model selection
  3. test set : 用来评估所选出来的model的实际性能

我对这三个名词的疑惑主要是由于一下几个原因:

  1. 之前做机器学习的时候,一般都没有涉及到模型选择(model selection),所以对validation set了解不足。
  2. 对test的作用没理解到位。之前一直觉得test的结果是拿来做反馈,以利于模型训练的。

所以下面先分别介绍一下model selection和test过程。

model selection

我们知道,在做模型训练之前,我们必须选择所训练的模型的形式:线性模型(y = wx+b)或者非线性模型(SVM,decision tree,neural network….)。选择好模型之后,我们才会开始训练,训练的目标是确定模型的参数,训练一般是通过设计损失函数,然后对损失函数进行优化来完成训练。

而很多时候我们并不知道哪种模型适合,所以往往我们需要对多种模型进行训练,训练完之后就会得到多个模型的结果,我们希望从这些训练好的模型中选择最适合的模型。我们通过用validation set对所有模型进行测试,然后选出error rate最小的那个模型。

所以说valaidation set主要是用来选择模型的。

前面说很多时候我们并不知道哪种模型适合。而事实上,很多时候我们都可以根据前人的经验知道对于一个具体问题,哪种模型更适合,所以实际当中我们倒是很少用到model selection,所以也就没用到validation set,这也是我没有理解validation set的原因。

test过程

首先应该明确test过程的作用:他是为了评估模型的性能。

所以说,模型的训练和选择必须和test set无关。而不是像我前面理解的那样,用test结果做反馈,然后修复模型(虽然我们往往忍不住要这样子做),因为这样的话,模型中就包括了test set的信息。这样做test是不公平的。

您可能感兴趣的与本文相关内容

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值