大神李宏毅的交叉验证截图—带验证集
西瓜书的交叉验证截图----不带验证集
为什么上面两个大神的交叉验证好像不太一样?
是不是用验证集就用李宏毅的方法? NO 实际是任务驱动型的。
李宏毅老师提的交叉验证一般是在比赛(或者其他项目)上用的。
因为一般比赛会有两个数据集:训练集和测试集。而一般我们选手只能拿到训练集。那么我现在写了两个卷积神经网络模型,model1和model2,没有测试集怎么知道它好不好?
所以我们将训练集划出来一部分作为验证集,但是只验证一次就来判断两个模型好坏有偶然性。所以我们划分多次进行验证,这也叫做K-折交叉验证。
西瓜书上的交叉验证更具一般性,在很多论文中都可以用。
因为我们想水篇论文,而我们有没有私有数据集,只能用公开数据集。而用公开数据集可就和比赛不一样了,相当于我自己同时具有了训练和测试数据集。
假设这时候你随机选择30%数据作为测试,并且保持这30%数据不训练,那么就和上面比赛类似了,可以用剩下70%做交叉验证选择好的模型(这里用到了验证集)(有部分论文这么做)。但是不建议这么做,假如:我们用70%的做完交叉验证选好模型了,然后在30%数据上测试发现表现不好,这时候你会调整模型直到在30%数据上表现好(超越其他对比方法),但是其实你的模型以及拟合这30%数据了。所以再拿个新的数据集你的模型很可能不行。
如果你使用的是公开数据集进行实验,并且和其他方法进行比精度的话。更推荐使用上面西瓜书的那种交叉验证,即没有验证集(其实这里测试也可以看做上面李宏毅老师提到的验证集了)(很多论文也是这么做的)。我觉得这种方法用到了数据集的所有数据(如果数据集样本小的话更应该这样),相对来说比较公平。