机器学习与深度学习系列连载: 第一部分 机器学习(六)训练数据和测试数据(Train data and Test data)

本文探讨了机器学习中训练数据集与测试数据集的作用,解释了如何通过交叉验证优化模型选择,确保模型不仅在训练集上表现良好,也在未知数据上稳定。文章还讨论了验证集与测试集的区别及其在模型调优中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

训练数据和测试数据

我们现在已经对机器学习三板斧已经有了比较深入的了解,其实机器学习的过程就是找到一个数学模型(函数),来进行问题求解。但是如何从找到的函数集合中挑选最好的,很多同学已经可以脱口而出了:那就是找到让Loss函数最小的函数最小就可以了。 但是,这个让Loss函数最小的结果从哪里得出?,这就带出来训练数据集合测试数据集的概念了。

直觉上,我们的模型在训练数据集表现的好,在测试数据集上依旧稳定,那么我们就找到了一个好的函数。但是,我们的模型选择并不是这么简单,是一个相对复杂的过程。(因为还有超参数设置,比如学习率)
那我们就举一个简单的例子:
这里写图片描述
模型3在训练集合中表现最好,一般我们选用模型三进行测试。但是如果我们把测试数据分为,两个部分,一个是公共测试数据,一个是私有测试数据。
这里写图片描述
那就是公共测试数据中模型3表现最好,但是在私有测试数据中表现不理想。 这个问题怎么破.
我们需要找到私有测试数据中表现不好的原因:训练过程不充分!
交叉验证可以帮助我们解决一部分问题。

交叉验证 Cross Validation

首先我们把训练数据拆分成两部分,一部分是训练,一部分验证测试。验证测试的结果帮我我们进行模型选择。(函数选择和参数调整)
这里写图片描述
然后将选出来的模型,在所有的训练数据再次训练后,再到公共的测试数据中进行测试

为了是数据利用的更加充分,我们选择N阶交叉验证

N Fold Cross Validation

这里写图片描述
图例中N=3,我们从3次交叉验证中,得出,Model1 在训练中的表现最好,然后在用户公共测试。

在面试中,很有可能有同学会被问道validation set 和test set 的区别。

其实很简单,validation的目的就是:正式测试前,将模型尽可能调整到最优状态。

本专栏图片、公式很多来自台湾大学李弘毅老师、斯坦福大学cs229,斯坦福大学cs231n 、斯坦福大学cs224n课程。在这里,感谢这些经典课程,向他们致敬!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值