该方法存在两个弊端:
1、训练集和测试集划分有多重方式,每种方式的test MSE和最优degree是不一样的,结果取决于划分方式
2、训练集没有用到所有数据,效果不好
因此提出交叉验证。
交叉验证
LOOCV方法(Leave-one-out cross-validation):只用一个数据作为测试集,其他的数据都作为训练集,并将此步骤重复N次(N为数据集的数据数量),结果最后做平均。本质是n折交叉验证。
K折交叉验证(K-fold Cross Validation):测试集将不再只包含一个数据,而是多个,具体数目将根据K的选取决定,结果最后做平均。
五折交叉验证:
- 将所有数据集分成5份
- 不重复地每次取其中一份做测试集,用其他四份做训练集训练模型,之后计算该模型在测试集上的MSEi
- 将5次的MSEi取平均得到最后的MSE