1. 训练误差 和 泛化误差

  • 训练误差:模型在训练数据上的误差
  • 泛化误差:模型在新的数据上的误差(ps:更关心泛化误差而非训练误差)

例如:根据模考成绩来预测未来考试分数

  • 在过去的考试中表现很好(训练误差)不代表未来考试一定会好(泛化误差)
  • 学生A通过背书在模考中拿到很好的成绩
  • 学生B知道答案后面的原因

2. 验证数据集和测试数据集

验证数据集:一个用来评估模型好坏的数据集。(通过验证数据集可以来调参数,如:学习率取多少)

  • 例如拿出50%的训练数据
  • 不要跟训练数据混在一起(常犯错误)

因为验证数据集没有参加训练,所以在一定程度上是能反映出超参数的选择好坏。

测试数据集:只用一次的数据集。例如:

  • 未来的考试
  • 我出价的房子的实际成交价
  • 用在Kaggle私有排行榜中的数据集

3. K-折交叉验证

  • 在没有足够多的训练数据时使用(这是常态)

  • 算法:

    • 将训练数据分割成K块
    • For i = 1,…,k
      • 是用第i块作为验证数据集,其余作为训练数据集
    • 报告k个验证集误差的平均
  • 常用:k = 5或10

4. 总结

  • 训练数据集:训练模型参数
  • 验证数据集:选择模型超参数
  • 非大数据集通常使用K-折交叉验证
12-10 06:27