一、误差与泛化误差
- 若模型输出偏离真实目标值,则模型存在误差。
- 训练集上的平均误差称为训练误差,测试集上的误差称为泛化误差,泛化误差是衡量模型泛化能力的重要标准。
- 误差的度量标准可以用损失函数来表示。
二、数据集
- 训练集:相当于上课学知识。
- 验证集:相当于课后的练习题,用来纠正和强化学到的知识。
- 测试集:相当于期末考试,用来最终评估学习效果。
三、验证集
- 用于评估模型在新数据(验证集和测试集是不同的数据)上的表现。
- 通过调整超参数,让模型处于最好的状态。
- 验证集的主要作用:
- 评估模型效果,为调整超参数服务。
- 调整超参数,使得模型在验证集上的效果最好。
- 验证集是非必需的,如果不需要调整超参数,可以不使用验证集,直接用测试集来评估效果。
- 验证集评估出来的效果并非模型的最终效果,主要是用来调整超参数的,模型最终效果以测试集的评估结果为准。
四、测试集
- 调好超参数后,通过测试集来做最终的评估,来看学习效果(模型效果)好不好。
- 通过测试集的评估,会得到一些最终的评估指标,例如:准确率、精确率、召回率、F1 等。
五、数据集划分
- 对于小规模样本集(几万量级),常用的划分比例:
- 训练集:验证集:测试集 = 6:2:2。
- 训练集:测试集 = 8:2、7:3。
- 对于大规模样本集(百万级以上),只要验证集和测试集的数量足够即可。
- 超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集。
六、过拟合与欠拟合
- 过拟合:将训练样本自身的一些特点当作所有样本潜在的泛化特点,表现为在训练集上表现很好,在测试集上表现不好。原因包括训练数据太少、模型的复杂度太高、数据不纯等。
- 欠拟合:还没训练好,原因包括数据未做归一化处理、神经网络拟合能力不足、数据的特征项不够等。
七、防止过拟合的方法
- 移除特征,降低模型的复杂度:减少神经元的个数,减少隐藏层的层数。
- 训练集增加更多的数据。
- 重新清洗数据。
- 数据增强。
- 正则化。
- 早停。