模型评估与选择

经验误差与过拟合

  • 常见概念

误差:学习器的实际预测输出与样本的真实输出之间的差异

经验误差:学习器在训练集上的误差

泛化误差:在新样本上的误差

过拟合:指学习时选择的模型所包含的参数过多,以至于出现这一模型对一直数据预测得很好,但对未知数据预测得很差的现象

欠拟合:指对训练样本的一般性质尚未学好

评估方法

  • 留出法

定义:将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集 S,另一个作为测试集 T,即 D = S ∪ T , S ∩ T = ∅ D = S \cup T, S \cap T = \varnothing D=ST,ST=.在 S 上训练出模型后,用 T 来评估其测试误差,作为对泛化误差的估计。

不同的划分将导致不同的训练/测试集,相应的,模型的评估结果也会有差别。因此,单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。

  • 交叉验证法

先将数据集 D 划分成 k 个大小相似的互斥子集,即 D = D 1 ∪ D 2 ∪ . . . ∪ D k , D i ∩ D j = ∅ ( i ≠ j ) . D = D_1 \cup D_2 \cup ... \cup D_k ,D_i \cap D_j = \varnothing (i\neq j ). D=D1D2...DkDiDj=(i̸=j).然后,每次用 k - 1 个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得 k 组训练/测试集,从而可进行 k 次训练和测试,最终返回这 k 个测试结果的均值。通常把这称为 k 折交叉验证, k 的取值影响着交叉验证评估结果的稳定性和保真性。将数据集 D 划分为 k 个子集存在多种划分方式,为减少因样本划分不同而引入的差别,k 折交叉验证通常要随机使用不同的划分重复 p 次,最终的评估结果为这 p 次 k 折交叉验证结果的均值。

图一:10折交叉验证

  • 自助法

定义:给定包含 m 个样本的数据集 D,我们对它进行采样产生数据集 $ D^{’} $:每次随机从 D 中挑选一个样本,将其拷贝放入 $ D^{’} $,然后再将该样本放回初始数据集 D 中,使得该样本在下次采样时仍有可能被采样到;这个过程重复执行 m 次后,我们就得到了包含 m 个样本的数据集 $ D^{’} $,这就是自助采样的结果。

性能度量

  • 错误率与精度

定义:错误率是分类错误的样本数占样本总数的比例,精度是分类正确的样本数占样本总数的比例

  • 查准率、查全率与 F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例、假正例、真反例、假反例四种情形,令TP、FP、TN、FN分别表示其对应的样例数,则显然有 TP + FP + TN + FN = 样例总数。分类结果的混淆矩阵如表所示:

图二:分类结果混淆矩阵

查准率 P 、查全率 R 与 F1 分别定义为:

P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP

R = T P T P + F N R = \frac{TP}{TP + FN} R=TP+FNTP

F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N F1 = \frac{2 \times P \times R}{P + R} = \frac{2 \times TP}{样例总数 + TP - TN} F1=P+R2×P×R=+TPTN2×TP

  • ROC 与 AUC

ROC 全称是“受试者工作特征”曲线,ROC 曲线的纵轴是“真正例率”(TPR),横轴是“假正例率”(FPR)。TPR 和 FPR 公式如下:

T P R = T P T P + F N TPR = \frac{TP}{TP + FN} TPR=TP+FNTP

F P R = F P T N + F P FPR = \frac{FP}{TN + FP} FPR=TN+FPFP

进行学习器的比较时,若一个学习器的 ROC 曲线被另一个学习器的曲线完全“包住”,则可断言后者性能优于前者;若两个学习器的 ROC 曲线发生交叉,则难以一般性地断言两者孰优孰劣。此时如果一定要进行比较,则较为合理的判据是比较 ROC 曲线下的面积,即 AUC。

图三:ROC曲线与AUC示意图

偏差与方差

对测试样本 x,令 y D y_D yD为 x 在数据集中的标记, y 为 x 的真实标记,f(x;D) 为训练集 D 上学得模型 f 在 x 上的预测输出。以回归任务为例,学习算法的期望预测为:

f ˉ ( x ) = E D [ f ( x ; D ) ] \bar f(x) = E_D[f(x;D)] fˉ(x)=ED[f(x;D)]

使用样本数相同的不同训练集产生的方差为:

v a r ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] var(x) = E_D[{(f(x;D) - \bar f(x))}^2] var(x)=ED[(f(x;D)fˉ(x))2]

噪声为:

ϵ 2 = E D [ ( y D − y ) 2 ] \epsilon^2 = E_D[{(y_D - y)}^2] ϵ2=ED[(yDy)2]

期望输出与真实标记的差别为偏差,即:

b i a s 2 ( x ) = ( f ˉ ( x ) − y ) 2 bias^2(x) = {(\bar f(x) - y)}^2 bias2(x)=(fˉ(x)y)2

期望泛化误差

E ( f ; D ) = b i a s 2 ( x ) + v a r ( x ) + ϵ 2 E(f;D) = bias^2(x) + var(x) + \epsilon^2 E(f;D)=bias2(x)+var(x)+ϵ2

也就是说,泛化误差可分解为偏差、方差与噪声之和

偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度

一般来说,偏差与方差是有冲突的,这称为偏差-方差窘境

  • 在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率

  • 随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率

  • 在训练程度充足后,学习器的拟合能力已非常强,训练数据发生轻微的扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则会发生过拟合

图四:泛化误差与偏差、方差的关系示意图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值