模型评估

评估方向

模型误差

  • 给定损失函数时,基于损失函数的误差显然评估学习方法的标准
  • 回归预测模型:模型误差主要使用 MSE
  • 分类预测模型:模型误差主要是分类错误率 ERR=1-ACC
  • 模型训练时采用损失函数不一定是评估时使用的

Training Error

训练误差:模型在训练集上的误差,损失函数 $L(Y, F(X))$ 均值

  • $\hat f$:学习到的模型
  • $N$:训练样本容量
  • 训练时采用的损失函数和评估时一致时,训练误差等于经验风险
  • 训练误差对盘对给定问题是否容易学习是有意义的,但是本质上不重要
    • 模型训练本身就以最小化训练误差为标准,如:最小化 MSE、最大化预测准确率,一般偏低,不能作为模型预测误差的估计
    • 训练误差随模型复杂度增加单调下降(不考虑模型中随机因素)

Test Error

测试误差:模型在测试集上的误差,损失函数 $L(Y, f(X))$ 均值

  • $\hat f$:学习到的模型
  • $N$:测试样本容量
  • 测试误差反映了学习方法对未知测试数据集的预测能力,是模型 generalization ability 的度量,可以作为模型误差估计

  • 测试误差随模型复杂度增加呈U型

    • 偏差降低程度大于方差增加程度,测试误差降低
    • 偏差降低程度小于方差增加程度,测试误差增大
  • 训练误差小但测试误差大表明模型过拟合,使测试误差最小的模型为理想模型

模型复杂度

  • approximation error:近似误差,模型偏差,代表模型对训练集的拟合程度
  • estimation error:估计误差,模型方差,代表模型对训练集波动的稳健性
  • 模型复杂度越高

    • 低偏差:对训练集的拟合充分
    • 高方差:模型紧跟特定数据点,受其影响较大,预测结果不稳定
    • 远离真实关系,模型在来自同系统中其他尚未观测的数据集上预测误差大
  • 而训练集、测试集往往不完全相同

    • 复杂度较高的模型(过拟合)在测试集上往往由于其高方差效果不好,而建立模型最终目的是用于预测未知数据
    • 所以要兼顾偏差和方差,通过不同建模策略,找到恰当模型,其复杂度不太大且误差在可接受的水平
    • 使得模型更贴近真实关系,泛化能力较好
  • 简单模型:低方差高偏差
  • 复杂模型:低偏差高方差

  • 模型复杂度衡量参data_science/loss

Over-Fitting

过拟合:学习时选择的所包含的模型复杂度大(参数过多),导致模型对已知数据预测很好,对未知数据预测效果很差

  • 若在假设空间中存在“真模型”,则选择的模型应该逼近真模型(参数个数相近)
  • 一味追求对训练集的预测能力,复杂度往往会比“真模型”更高

解决方法

  • 减少预测变量数量
    • 最优子集回归:选择合适评价函数(带罚)选择最优模型
    • 验证集挑选模型:将训练集使用 抽样技术 分出部分作为 validation set,使用额外验证集挑选使得损失最小的模型
    • 正则化(罚、结构化风险最小策略)
      • 岭回归:平方损失,$L_2$ 范数
      • LASSO:绝对值损失,$L_1$ 范数
      • Elastic Net
  • 减弱变量特化程度:仅适合迭代求参数的方法
    • EarlyStop:提前终止模型训练
    • Dropout:每次训练部分神经元

模型信息来源

  • 训练数据包含信息
  • 模型形成过程中提供的先验信息
    • 模型:采用特定内在结构(如深度学习不同网络结构)、条件假设、其他约束条件(正则项)
    • 数据:调整、变换、扩展训练数据,让其展现更多、更有用的信息

评价指标

  • Classification 分类问题:输出变量$Y$为有限个离散变量

    • 混淆矩阵
      • F-Measure
      • TPRFPR
    • ROC
    • AUC
  • Tagging 标注问题:输入 $X^{(1)}, X^{(2)}, \cdots, X^{(n)}$、输出 $Y^{(1)}, Y^{(2)}, \cdots, Y^{(n)}$ 均为变量序列

    • 类似分类问题
  • Regression 回归问题

    • Squared Error
      • MSE
      • $R^2$、$R^2_{Adj}$
      • AIC
      • BIC
    • Absolute Error
      • MAE
      • MAPE
      • SMAPE
  • 经验损失、结构损失总是能用作评价模型,但是意义不明确