模型评估与选择
统计机器学习方法的三要素
以监督学习为例,学习方法一般由模型、策略和算法组成。
模型: 所要学习的条件概率分布/决策函数/映射函数。
假设空间
策略:如何从假设空间中选择最优的假设或模型。
损失函数
损失函数:- 平方损失函数:
期望损失函数:
过拟合
但如果训练集的规模有限,那么此时经验风险无法逼近期望风险,因此我们需要在经验风险和模型复杂度之间做出权衡。如果模型过于复杂且训练集规模有限,那么模型很可能会出现过拟合。
为了对抗这种情况,我们需要引入结构风险最小化模型,在经验风险和模型复杂度之间做出权衡。结构风险函数在经验风险的基础上增添了正则化项,以限制模型的复杂度,其通常表示为:
算法:学习模型的具体方法。统计学习通常是一个优化问题,小部分的优化问题有解析解,大部分的优化问题需要通过优化算法来求解,如梯度下降法、牛顿法等。
模型评估
泛化误差
泛化误差是学习方法对未知数据的预测能力,是学习方法的重要性能度量。而与此相对的是经验误差(训练误差),即学习方法在训练集上的误差。显然,对于我们的目标而言,泛化误差越小越好。但经验误差也并不一定越小越好,毕竟会产生过拟合。所以我们需要引入模型评估和选择的方法。
对于回归任务,我们可以将泛化误差通过“偏差-方差”分解为:
- 偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。一般来说,
。偏差越大,说明模型越不准确。 - 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。一般来说,
。方差越大,说明模型越不稳定。 - 噪声:表示在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了问题本身的难度。比如,测试集可能会不太准确。
一般而言,偏差和方差是矛盾的,降低偏差会增加方差,降低方差会增加偏差。并且,当训练不足时,偏差主导泛化误差;当训练过度时,方差主导泛化误差。
产生测试集
模型评估考虑的主要问题就是测试集的产生方法。模型评估的方法主要有留出法、交叉验证法和自助法。
- 留出法:直接将数据集
划分为两个互斥的集合,一个作为训练集 ,一个作为测试集 。划分时要注意数据分布的一致性和随机性,并且也要注意训练集和测试集的规模问题。 - 交叉验证法:先将数据集
划分为 个大小相似的互斥子集,然后每次用 个子集的并集作为训练集,剩下的一个子集作为测试集,这样就可以获得 组训练/测试集,从而可以进行 次训练和测试,最终返回 次测试结果的均值。 - 自助法:给定包含
个样本的数据集 ,我们对其进行采样产生数据集 作为训练集,而 作为测试集,这样就可以进行模型评估。显然 中有一部分样本会重复,而另一部分样本会缺失。根据大数定律,当 时,样本 在训练集中的概率为 ,因此在自助法中,样本 会有 的概率不会出现在训练集中。
调参数
- 算法的参数:一般人工设定,叫做超参数。
- 模型的参数:一般通过模型自己学习得到。
调参的过程与模型自己学习的过程类似,也是一个优化问题:先产生若干模型,然后基于某种评估方法进行选择。这时要用验证集来评估模型的好坏。因此,有时还将数据集划分为训练集、验证集和测试集三个部分。
性能度量
衡量模型泛化能力的评价标准。常见的性能度量有:
- 错误率:
,其中 为指示函数。 - 精度:
。 - 查准率:
,其中 为真正例, 为假正例。意思就是在所有预测为正例的样本中,有多少是真正例。 - 查全率:
,其中 为假反例。意思就是在所有真正例中,有多少被预测为正例,也就是找全了多少。
查准率和查全率的矛盾
查准率和查全率经常是相互矛盾的一对度量。如果想要把正例选得准,那很有可能对于一些模棱两可的示例,就会保守起见将它们判定为负例,这样就是查准率高但查全率低。反之,就会很激进地把模棱两可的示例判为正例,这样就是查准率低但查全率高。
因此,我们常常使用调和平均综合度量查准率和查全率,这就是下面的
值: ,是查准率和查全率的调和平均数。如果 值很高,那么说明查准率和查全率都相对很高且比较均衡。此外,我们可以画出 曲线图来更直观地判断。- 推广的
值: ,其中 为权重系数。当 时,就是 值;当 时,查全率有更大的权重;当 时,查准率有更大的权重。 曲线:纵轴是真正例率 ,横轴是假正例率 的曲线。一般来说越靠近 的曲线效果越好。我们还可以用 曲线下的面积来刻画学习器的效果,即 。- 非均等代价下的性能度量:在实际应用中,不同的错误会带来不同的代价,因此我们需要引入代价敏感性度量。例如,令
和 分别代表样例集 中的正例子集和反例子集,那么代价敏感的错误率为
其中
比较检验
统计假设检验可以用来比较两个模型的性能。对于两学习器