针对不同参数和结构的模型,他们的泛化能力我们为了评估无从可知,为了了解模型的泛化能力,我们引入了交叉验证。所以我们在划分数据集的时候,通常会将数据集划分为三个数据集,三个数据集分别是:训练集(train set),评估集(valid set)和测试集(test set)。交叉验证结果越小,说明模型的泛化能力越强。
1.过拟合
一个小栗子说明模型的泛化能力:
例如多项式函数f(x) = a0 + ax^1 + ax^2 +......
我们知道,当多项目函数的幂次项越高,模型的拟合效果越好,但是也同时会产生一定的过拟合。
2.交叉验证
交叉验证的一个极端叫去一法。即每次从数据中取出一个样本,然后用剩余的样本进行训练。K折交叉验证即将数据分为K个部分,每次取其中一个部分,剩余部分用来做测试,共需要进行K次。一般用用5折和10折交叉验证。下图(5折交叉验证)能够很好的反应交叉验证的方法:
注意在生成数据折的时候ÿ