第2章 实践方法论
2.1 模型偏差
- 定义:模型偏差指模型在训练数据上无法准确拟合,损失较高。
- 原因:模型过于简单,灵活性不足,无法捕捉到数据中的复杂关系。
- 解决方法:
- 增加输入特征数量,例如从使用前一天的信息增加到使用前56天的信息。
- 使用更复杂的模型,如深度学习,增加模型的灵活性。
- 注意:损失大不一定仅由模型偏差导致,也可能是优化问题。
2.2 优化问题
- 定义:模型在训练过程中无法有效降低损失,可能陷入局部最小值。
- 例子:残差网络(ResNet)中,56层网络比20层网络在训练集上损失更高,非过拟合,而是优化问题。
- 判断方法:通过比较不同复杂度的模型在训练集上的表现。
- 解决建议:
- 先使用较简单的模型(如线性模型、SVM)进行训练,了解其性能。
- 若复杂模型表现不佳,考虑优化算法(如梯度下降)的改进或替换。
2.3 过拟合
- 定义:模型在训练数据上表现很好,但在测试数据上表现差,泛化能力弱。
- 原因:模型灵活性过高,对数据中的噪声也进行了拟合。
- 解决方法:
- 增加训练数据:通过数据增强等方式增加数据多样性。
- 限制模型灵活性:
- 减少模型参数,如减少神经网络中的神经元数量。
- 使用更具限制性的模型架构,如CNN。
- 应用正则化、早停、丢弃法等技术。
- 注意:避免过限制模型导致模型偏差。
2.4 交叉验证
- 定义:将训练数据分为训练集和验证集,使用验证集评估模型性能,以避免在测试集上过拟合。
- k折交叉验证:将训练数据分为k等份,轮流将其中一份作为验证集,其余作为训练集,重复k次。
- 应用:通过k折交叉验证的结果平均,选择表现最好的模型,并在全部训练数据上重新训练,最后用于测试集。
2.5 不匹配
- 定义:训练集和测试集的分布不同,导致模型在测试集上表现不佳。
- 原因:数据的时间差异、地域差异、采集方式差异等。
- 解决方法:
- 深入理解数据的产生方式,判断是否存在不匹配问题。
- 尝试收集与测试集分布相似的数据用于训练。