training validation and testing

来源:互联网 发布:票务管理系统源码 编辑:程序博客网 时间:2024/06/06 03:41

Mostly, we divide the whole set into 3 parts.

1. Training Set

Train your model. You can optimize your model, change some parameters and so on.

2. Validation Set

Look at your models and select the best performing approach using the validation data. Compare your algorithms and their training parameters and decide on a winner.

3. Test Set

Do not change any parameters, just test your winner model

Reference

  1. http://stats.stackexchange.com/questions/19048/what-is-the-difference-between-test-set-and-validation-set
  2. http://stats.stackexchange.com/questions/9357/why-only-three-partitions-training-validation-test



training是训练数据,拿来拟合模型,就是用这部分数据来建立模型,这个相信大家都明白。

validation是验证数据,刚才说training建了一个模型,但是模型的效果仅体现了训练数据,但不一定适合同类的其他数据,所以我们会在建模前会将数据分成两部分,一部分为训练数据,一部分为验证数据(两部分数据的比例大致为7:3,这取决于你验证的方法,详细说明我从网上摘了下放在本次说明的最下边,但愿你能看懂);另外,你也可能训练多个模型,但不知哪个模型性能更佳,这时可以将验证数据输入不同模型进行比较。
test是测试数据,它跟前两者的最大区别在于:training和validation数据均是同一时期的数据,如都是5-7月数据,但既然是测试,我们就需要用跨期的数据来验证模型的稳定性,此时,可采用8月单月数据或9月单月数据对建好的模型进行测试,看性能有没有下降或偏移。

==================
Holdout 验证常识来说,Holdout 验证并非一种交叉验证,因为数据并没有交叉使用。 随机从最初的样本中选出部分,形成交叉验证数据,而剩余的就当做训练数据。 一般来说,少于原本样本三分之一的数据被选做验证数据。

K-fold cross-validation{{K次交叉验证,初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10次交叉验证是最常用的。



1. 各类数据的用途示例

    训练数据和验证数据在训练时使用,基本流程如下:  

[python] view plain copy
  1. for each epoch  
  2.     for each training data instance  
  3.         propagate error through the network  
  4.         adjust the weights  
  5.         calculate the accuracy over training data  
  6.     for each validation data instance  
  7.         calculate the accuracy over the validation data  
  8.     if the threshold validation accuracy is met  
  9.         exit training  
  10.     else  
  11.         continue training  
   

      训练完成之后,使用测试数据验证其准确度是否满足要求,即验证其推广/泛化能力。    


2. 训练数据(Training Set)

     用于调整网络的权重(weights)和偏差(biases)。 

3. 验证数据(Validation Set)

    验证数据用于最小化过拟合(overfitting)。

    这数据不调整权重和偏差。在基于训练数据调整权重之后,如果基于训练数据的准确度增加了,而基于验证数据的准确度没有增加或反而下降了,则表明过拟合(overfitting)了,需要立即停止训练。

4. 测试数据(Testing Set)

    在训练完成之后,使用测试数据确认网络真正的预测和分类能力。

5. Ground Truth

    在有监督学习中,数据是有标注的,以(x, t)的形式出现,其中x是输入数据,t是标注。正确的t标注是Ground Truth, 错误的标记则不是。(也有人将所有标注数据都叫做Ground Truth)



原创粉丝点击