如何评估分类器的性能?
在训练期间,有多种方法可以估计模型的泛化误差。估计误差支持学习算法进行模型选择;即,发现一个不受过拟合影响的、具有正确复杂度的模型。
由于模型已经构建完成,因此它可以用于测试集中预测以前未见过数据的类别标签。在测试集上衡量模型的性能通常很有用,因为这样的衡量标准提供了对其泛化误差的无偏估计。从测试集中评估的准确率或错误率可用于比较多个分类器在相同域上的关联性能。
有多种常用方法可用于评估分类器的性能,如下所示:
留出法 - 在留出法中,带有标签实例的初始记录被划分为两个不相交的集合,分别称为训练集和测试集。从训练集中归纳一个分类模型,并在测试集上计算其性能。
分类器的效率可以根据归纳模型在测试集上的效率来计算。留出法有几个众所周知的缺点。首先,由于一些数据被保留用于测试,因此只有部分标签实例可用于训练。
因此,当使用一些标签示例进行训练时,归纳的模型可能不如最佳模型。其次,模型可能高度依赖于训练集和测试集的结构。
另一方面,如果训练集过大,则从较小的测试集中计算出的估计准确率的可靠性较低。因此,估计值具有较宽的置信区间。最后,训练集和测试集之间没有更高的分离。
随机子采样 - 可以多次重复留出法来提高分类器性能的计算。此方法称为随机子采样。
令 acci 为第 i 次迭代期间的模型准确率。总体准确率由 accsub=$\mathrm{\displaystyle\sum\limits_{i=1}^k}$acci/k 给出
随机子采样遇到与留出法相关的几个问题,因为它没有使用尽可能多的数据用于训练。它也没有控制每次数据用于测试和训练的次数。因此,某些数据可能比其他数据更常用于训练。
交叉验证 - 交叉验证是随机子采样的替代方法。在这种方法中,每个数据都多次用于训练,并且准确地一次用于测试。假设可以将记录划分为两个大小相等子集。首先,可以选择其中一个子集进行训练,另一个子集进行测试。可以交换子集的角色,以便以前的训练集成为测试集。此方法称为二折交叉验证。