k折交叉验证是用来选择模型设计并调节超参数的。
首先,我们先来看一下k折交叉验证的使用背景:
我在训练模型的时候,通过已有的数据训练得出一个模型,在这里用于训练的数据称为训练集。当我们把这个模型部署到真实环境去的时候,通过真实的数据得到结果,这个时候这些真实的数据就叫做测试集。
那么问题来了,我们在训练模型的时候怎么样评估模型的好坏呢?怎么样调节模型的超参数呢?
答:一般我们都是将训练用的数据分为训练集和验证集。训练集用来训练数据,验证集测试模型的好坏,据此不断调节模型的超参数。
那么问题又来了,在这里验证集是不参与训练的,而如果我们的数据比较少,想要充分利用训练集里的数据怎么办呢?只是使用固定的一个验证集会不会训练得出来的结果会不会不够公正?
答:解决这两个问题的其中一个方法就是k折交叉验证了。
k折交叉验证的训练过程如下:
1. 将数据分成k份,并进行k次训练。每次训练将1份作为验证集,剩下的k-1份作为训练集,k次训练正好每1份都当了一次验证集。</