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

训练数据和测试数据

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

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

交叉验证 Cross Validation

首先我们把训练数据拆分成两部分,一部分是训练,一部分验证测试。验证测试的结果帮我我们进行模型选择。(函数选择和参数调整)
机器学习与深度学习系列连载: 第一部分 机器学习(六)训练数据和测试数据(Train data and Test data)_第3张图片
然后将选出来的模型,在所有的训练数据再次训练后,再到公共的测试数据中进行测试

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

N Fold Cross Validation

机器学习与深度学习系列连载: 第一部分 机器学习(六)训练数据和测试数据(Train data and Test data)_第4张图片
图例中N=3,我们从3次交叉验证中,得出,Model1 在训练中的表现最好,然后在用户公共测试。

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

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

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

你可能感兴趣的:(机器学习,机器学习)