算法工程师面试题八之交叉验证
2023-09-14 09:13:19 时间
1.train/dev/test data
我们将数据划分为训练集、验证集(也称开发集:development data)和测试集。
1.1 为什么要分成三类?
在训练集上训练模型,在验证集上评估模型,一旦找到的最佳的参数,就在测试集上最后测试输出(一般来说,论文中的模型效果都是使用这个测试集的结果),测试集上的误差作为泛化误差的近似。
关于验证集的划分可以参考测试集的划分,其实都是一样的,这里不再赘述。
可以简单地将上述三者对应学习过程:
训练集看成是家庭作业;
开发(验证)集看出是小测试;
测试集看成是期末考试。
2.交叉验证(cross-validation)
2.1 为什么要这么做?
上图说明的问题是:如果采用不同的 Training set,validation set
,当模型取最佳效果时,超参数c可能落在不同的取值处所以我们就需要轮流验证(也就是交叉验证)。这么看来,其实交叉验证的根本原因是: 为了避免数据集太小,而带来对参数估计出现的问题。
2.2 目的
验证集用来调节超参数, 可以得到效果更好的模型
2.3 做法
将原始的训练集分成训练集和验证集,然后轮流取出一部分作为验证集进行验证,这种思想就是交叉验证。
比如说,现在有五份数据集:A,B,C,D,E,F
然后我们将其中的每一份都轮流作为验证集,这样做的目的是为了剔除“验证集”的随机性,因为可能某份验证集就存在数据倾斜的情况,如果拿5份数据分别作为验证集那么就可以避免数据集不平整带来的调参失败问题。
相关文章
- 【转】2012年6月26 – 盛大PHP工程师最新面试题
- 博雅PHP高级工程师面试题-自拟
- 腾讯PHP工程师面试题两份
- 【转】一次前端面试题
- 2019年百度最新Java工程师面试题
- 面试题
- (剑指Offer)面试题36:数组中的逆序对
- 【学习总结】测试开发工程师面试指南-技术栈与名企面试题
- 面试数十家Linux运维工程师,总结了这些面试题(含答案)转
- 前端开发必看100道大厂面试题集锦(一)
- 闭关啃完1932页《Android开发工程师面试题》,成功定级自如T4,月薪20k
- 【Android】全网最详细的Android面试题合集,23求职速领
- 2021实施工程师面试题(14题带答案)
- 【面试】MyBatis面试题
- 【LeetCode 中等 矩阵】面试题 01.07. 旋转矩阵
- Python工程师面试题汇总
- 2021年软件测试工程师经典面试题
- 字节跳动测试面试题:如何定位一头条bug根因?
- 知乎万赞:熬夜整理出的软件测试面试题大全(2021最新)
- ❤️这100道经典的接口测试面试题,测试工程师面试都会遇到❤️
- BD面试题1-两个大文件中找出公共记录[转载]
- 算法工程师面试题十一之熵