感觉如果验证数据叫测试数据,测试数据叫验证数据是不是更好些?

来源:8-6 验证数据集与交叉验证

神经旷野舞者

2018-03-06

5a9e6661e2114.png

这样子的话,train_test_validation_split和之前的train_test_split前面部分就吻合了,而且也说的通,validation数据集就是用来验证train_test_split方案是否正确的嘛,不知道当初把validation放在测试前面是怎么考虑的,这样一来测试数据作用和原来方案的测试数据作用就不是一回事了?

写回答

1回答

liuyubobobo

2018-03-07

是的,在使用验证数据集的情况下的测试数据集和不使用验证数据集情况下的测试数据集,不是一回事。


我觉得你对验证数据集的作用理解的有偏差。验证数据集的作用不是“验证train_test_split方案是否正确”,而是看在一组超参数县,训练数据集训练出的模型的效果是怎样的。如果不够好,换组超参数重新训练,直到达到理想的情况(或者虽然不理想,但是是可以得到的最佳模型)。最终,测试数据集的作用是判定我们的模型最终的效果是怎样的。所以,验证数据集是在测试数据集之前进行使用的。


简而言之:训练数据集的作用是做训练;验证数据集的作用是调超参;测试数据集的意义是评判训练的模型的最终结果。再重新听一遍这一小节的前半部分,理解一下这个过程?


1
1
神经旷野舞者
操作过程我理解好了,作用确实理解混淆了。 模型肯定是最佳符合训练数据集的,现在验证数据集就是为了使得模型同时符合训练数据和验证数据,那为什么分成训练数据和验证数据,直接训练二者整体不就好了? 我理解是这样就不能判断模型选的对不对,比如可能把曲线模型套在线性数据上,有了验证数据好像能矫正一些,使得模型真的符合两个数据集。 又考虑到测试数据的随机性,以前都没有考虑这个问题,应该是默认数据集足够大吧?所以又取了平均。 感觉好像还有哪里没通。
2018-03-07
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程