• 模型评估与选择


    • 获得测试结果: 评估方法.
    • 评估性能优劣: 性能度量.
    • 判断实质差别: 比较检验.

    〇. 经验误差与过拟合

    • 泛化误差: 未来样本上的误差; 训练误差: 也称作经验误差;

    • 过拟合(经验误差小, 泛化误差大); 欠拟合(经验误差大).

    image-20210624171034258

    一. 评估方法

    包含 (m) 个样本的数据集 (D), 既要训练又要测试, 如何划分? - 数据集划分.

    1.1 留出法 (hold-out)

    • 做法: 直接将数据集划分为两个互斥集合: 训练集 (S), 测试集 (T).
    • 注意: (S)(T) 的划分要尽可能保持数据分布一致性.
      • 分层抽样: 保持类别比例一致.
      • 若干次随机抽样, 取平均值.
    • 比例: (S/T) 比例通常在 2:1 ~ 4:1.

    1.2 交叉验证法 (cross-validation)

    • 将数据集划分为 (k) 个大小相似的互斥子集(分层采样);
    • 每次选 (1) 个子集作为测试集, 余下的为训练集;
    • 最终取 (k) 个测试结果的均值.

    image-20210624092038958

    • (10)(10) 折交叉验证, 含义:
      • (D) 划分为 (k) 个子集可能有多种划分方式, 随机使用不同的划分方式 (p) 次.
      • 最终结果为 (p)(k) 折交叉验证, 是所有测试结果的均值.
    • 留一法: 数据集 (D) 包含 (m) 个样本时, 取 (k=m).
      • 此时每个样本都被测试, 不受随机取样的影响.
      • 通常, 结果更加准确, 而计算开销太大.

    二. 性能度量, performance measurement

    根据测试结果 (f(x_i)) 和样本真实值 (y_i), 如何衡量机器学习模型的效果? - 从测试集计算指标.

    2.1 回归任务

    均方误差

    [E(f ; D)=frac{1}{m} sum_{i=1}^{m}left(fleft(oldsymbol{x}_{i} ight)-y_{i} ight)^{2} ]

    2.2 分类任务

    错误率

    [E(f ; D)=frac{1}{m} sum_{i=1}^{m} mathbb{I}left(fleft(oldsymbol{x}_{i} ight) eq y_{i} ight) ]

    精确率/精度

    [egin{aligned} operatorname{acc}(f ; D) &=frac{1}{m} sum_{i=1}^{m} mathbb{I}left(fleft(oldsymbol{x}_{i} ight)=y_{i} ight) =1-E(f ; D) end{aligned} ]

    下面是一些与混淆矩阵(confusion matrix)有关的概念.

    查准率/准确率, precision, (找到的都对)

    [P=frac{TP}{TP+FP} ]

    查全率/召回率, recall, (可能对的都找到)

    [R = frac{TP}{TP+FN} ]

    (F_1)(F_eta), (权衡 precision 和 recall)

    [F_1 = frac{2 imes P imes R}{P+R} ]

    [F_eta=frac{(1+eta^2) imes P imes R}{(eta^2 imes P) + R} ]

    • (eta = 1), 标准 (F_1).

    • (eta >1), 偏重查全率 (R) (逃犯信息检索)

    • (eta<1), 偏重查准率 (P) (商品推荐系统)

    (ROC) 曲线 (AUC)

    • 分类器通常不是直接预测得到标签, 而是预测一个概率预测值, 然后将预测值(pred_prob)与分类阈值(threshold)进行比较.
      • ( ext{pred_prob} ge ext{threshold}), 认为是正类; 反之, 为反类.
    • 根据每个样本的 ( ext{pred_prob}), 可以对测试样本的预测结果进行排序; 最可能是正类的排在前, 最不可能是正类的排在后.
    • 分类过程, 相当于在上一步的排序结果中, 选取一个截断点 (cut point), 之前的认为是正类, 之后的认为是负类.
    ( ext{ROC}), Reciver Operating Characteristic
    • 根据预测结果 ( ext{pred_prob}) 对测试样本排序.
    • 逐个把样本作为正类进行预测 (相当于把 threshold 依次设置为每个样本的预测值 pred_prob), 每次设定后计算真正例率 ( ext{TPR}) 和假正例率 ( ext{FPR}).
    • ROC 曲线: (y) 轴是 ( ext{TPR}), (x) 轴是 ( ext{FPR}).

    image-20210624170335299

    • 真正例率: ( ext{TPR} = frac{TP}{TP+FN}); 假正例率: ( ext{FPR} = frac{FP}{TN+FP}).
    ( ext{AUC}), Area Under ROC Curve
    • ( ext{ROC}) 曲线下方面积是 ( ext{AUC}), Area Under ROC Curve.
    • 有限样例的情况下, 可以用 ( ext{AUC}=frac{1}{2}sum_{i=1}^{m-1} (x_{i+1}-x_i)cdot(y_i+y_{i+1})). (梯形面积公式)
    • ( ext{AUC}) 考虑的是样本的排序质量 ( ext{AUC}=1-ell_{ ext {rank }})
      • 排序损失 (ell_{ ext {rank }}=frac{1}{m^{+} m^{-}} sum_{x^{+} in D^{+}} sum_{x^{-} in D^{-}}left(mathbb{I}left(fleft(oldsymbol{x}^{+} ight)<fleft(oldsymbol{x}^{-} ight) ight)+frac{1}{2} mathbb{I}left(fleft(oldsymbol{x}^{+} ight)=fleft(oldsymbol{x}^{-} ight) ight) ight))

    三. 比较检验

    测试集上的指标显示出的性能, 并不等于泛化性能. - 从测试性能推出泛化性能的把握有多大.

    • 假设检验: 为比较分类器性能提供依据. 根据假设检验的结果, 我们可以推断出, 若在测试集上 (A)(B) 好, 则 (A)泛化性能是否在统计意义上优于 (B) 的, 以及得到这个结论的把握有多大.
    • 借助数理统计工具.

    3.1 T-检验

    • 多次重复留出法或者交叉验证法得到多组结果时, 可以使用"T-检验".

    3.2 交叉验证T-检验

    • 对不同学习器进行比较. (k) 折交叉验证, 成对T-检验.

    3.2 偏差-方差分解

    • 适用于回归任务, 拆解泛化误差.
      • 从三个方面进行定量: 算法, 数据, 任务.

    image-20210624174840347

    泛化性能是由: 算法学习能力, 数据充分性以及学习任务本身的难度共同决定的.

    References

  • 相关阅读:
    hdu 1325 Is It A Tree?(并查集)
    hdu 1010 Tempter of the Bone(深搜+奇偶剪枝)
    hdu 1811 Rank of Tetris(并查集+拓扑排序)
    hdu 4324 Triangle LOVE(拓扑排序)
    使用hibernate和struts2实现分页功能
    struts2生成随机验证码图片
    Spring学习篇:IoC知识整理(一)
    HibernateTools工具通过hbm文件自动生成ddl、pojo等代码
    使用struts2的token机制和cookie来防止表单重复提交
    Spring学习篇:AOP知识整理
  • 原文地址:https://www.cnblogs.com/crayonsea/p/14928148.html
Copyright © 2020-2023  润新知