1. 误差与过拟合
- 错误率:假定mmm个样本中有aaa个样本分类错误,则错误率定义为E=a/mE=a/mE=a/m。
- 精度:精度 =1−E=1−a/m=1-E=1-a/m=1−E=1−a/m。
- 误差:
– 训练误差(经验误差):在训练集上的误差。
– 泛化误差:在新样本上的误差。 - 过拟合:指学习器把训练样本本身的一些特点作为潜在样本都会具有的一般性质学习。
- 欠拟合:指对训练样本的一般性质尚未学好。
有多种因素可能会导致过拟合,最常见的情况是学习能力过于强大,学到了训练样本所包含的不太一般的特性。过拟合是机器学习面临的关键障碍,这一点只能缓解而无法完全避免。
2. 评估方法
- 留出法(hold-out):将数据集划分为两个互斥的集合,一个作为训练集,一个作为测试集。
- 交叉验证法(cross validation):先将数据集划分为kkk个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从原数据集中通过分层采样得到。每次用k−1k-1k−1个子集的并集作为训练集,余下的一个子集作为测试集。这样可获得kkk组训练/测试集,从而可进行kkk次训练和测试,最终返回kkk个测试结果的均值。通常也叫做“kkk折交叉验证”(kkk-fold cross validation)。
我们希望评估的是用整个训练集训练出的模型,但在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估模型所使用的训练集比原训练集要小,这会引入因样本训练规模不同而导致的估计偏差。
- 自助法:一定程度上能够解决上述问题, 它以自助采样法(bootstrap sampling)为基础。给定包含mmm个样本的数据集DDD,对其进行采样产生数据集D′D'D′:每次随机从DDD中挑选一个样本,将其拷贝放入D′D'D′,然后再将该样本放回初始数据集DDD中,使得该样本在下次采样时仍有可能被采到。反复执行该过程mmm次,就得到了包含m个样本的数据集D′D'D′。显然DDD中有一部分样本会在D′D'D′中多次出现,而另一部分不出现。根据估计,通过自助采样,初始数据集DDD中约有36.8%的样本未出现在采样数据集D′D'D′中。于是可将D′D'D′用作训练集,DDD\ D′D'D′用作测试集。这样实际训练模型使用的是mmm个样本,且仍有占数据总量约1/31/31/3的没有在训练集中出现的样本用于测试。
自助法多在数据集较小且难以有效划分训练-测试集时使用,但这也会改变初始数据集的分布,引入估计偏差。在数据量充足时通常使用留出法和交叉验证法更多。