什么是交叉验证
将训练数据集分为abc三组,通过ab训练出的模型被c验证,通过bc训练出的模型被a验证,通过ac训练出的模型被b验证,然后看在哪些超参数下,这个模型在3组验证中效果最好,那就选用该超参数组合
为什么要用到交叉验证
因为如果选用训练数据集训练模型,测试数据集来测试模型,那么有可能训练出来的模型会对测试数据集过拟合,因为我们一直是在针对测试数据集来调参,从而无法获得最佳的模型,如果使用交叉验证,我们会先通过训练数据集来充分训练模型,然后用测试数据集对整个模型进行最终的评判,类似下图中,引入验证数据的概念一样,不过下图这种会过拟合验证数据,所以通过交叉验证的方式,防止模型对某份数据过于拟合
如何使用交叉验证
代码如下,主要看cross_val_score这个函数,这个是通过交叉验证方式得出3组模型的各自的准确度
import numpy as np
from sklearn import datasets
from sklearn.model_sele