训练集、测试集、验证集
- 训练集:用于进行模型拟合的数据;
- 验证集: 是模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估;
- 测试集:用来评估模最终模型的泛化能力;
注意:测试集不能作为调参、选择特征等算法相关的选择的依据。
简记为:训练集是日常的学习,验证集是模拟考,测试集是高考。
- 误差:学习器的预测输出与样本的真实输出之间的差异;
- 训练误差:学习器在训练集上的误差;
- 泛化误差:学习器在测试集上的误差;
过拟合与欠拟合
- 过拟合
- 欠拟合
交叉验证
k折交叉验证
由于验证数据集不参与模型训练,当训练数据不够用时,预留大量的验证数据显得太奢侈。⼀种改善的方法是K折交叉验证。
把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其它K−1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这K次训练误差和验证误差分别求平均。
留一法
k折交叉验证交叉验证的极限就是当我们把n个样本数据分成n折的时候就是留一法。
在机器学习领域,n折交叉验证(n是数据集中样本的数目)被称为留一法(Leave-OneOut),即每次用一个样本做验证集,其余的样本做训练集。
留一法的一个优点是每次迭代中都使用了最大可能数目的样本来训练。另一个优点是该方法具有确定性 。
确定性的含义,指的是使用分类算法后,每一次的执行结果是否是一致的。比如,2折与3折交叉验证,算法每次随机分为均等分,每次均分结果如果不一致(事实上,在概率上很难一致。)那么最终结果就不一致,此时我们说分类的结果是不确定的。如果使用n折交叉验证,因为要循环n-1次,最终的结果求平均后,结果始终是一致的,所以,我们说,分类的结果是确定性的。
衡量回归的性能指标
均方误差(MSE)
均方根误差(RMSE)
平均绝对误差(MAE)
相比较与MSE,MAE对待数据中的异常值不太敏感。