目录
模型选择
训练误差和泛化误差
训练误差:模型在训练数据上的误差。
泛化误差:模型在新数据上的误差。
验证数据集:一个用来评估模型好坏的数据集。
测试数据集:只用一次的数据集。
K-折交叉验证
在没有足够多数据时使用(这是常态)
算法:将训练数据分割成K块,
for i = 1,....K.
使用第i块作为验证数据集,其余的作为训练数据集。
报告K个验证集误差的平均。
常用:K=5或10.
总结
- 训练数据集:训练模型参数。
- 验证数据集:选择模型超参数。
- 非大数据集上通常使用k-折交叉验证。
过拟合和欠拟合
模型容量
拟合各种函数的能力。
低容量的模型难以拟合训练数据。
高容量的模型可以记住所有的训练数据。
模型容量的影响
估计模型容量
难以在不同的种类算法之间比较,例如树模型和神经网络。
给定一个模型种类,将有两个主要因素:参数的个数、参数值的选择范围。
VC维
统计学习理论的一个核心思想。
对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给定标号,都存在一个模型来对它进行完美分类。
线性分类器的VC维
2维输入的感知机,VC维=3。能够分类任何3个点,但不是4个(xor问题)。
支持N维输入的感知机的VC维是N+1。
一些多层感知机的VC维 O(NlogN)。
VC维的用处
提供为什么一个模型好的理论依据。
它可以衡量训练误差和泛化误差之间的间隔。
但是很少在深度学习中使用:衡量不是很准确,计算深度学习模型的VC维很困难。
数据复杂度
多个重要因素:样本个数、每个样本的元素个数、时间空间结构、多样性。
总结
- 模型容量需要匹配数据复杂度,否则可能导致欠拟合和过拟合。
- 统计机器学习提供数据工具来衡量模型复杂度。
- 实际中一般靠观察训练误差和验证误差。