zoukankan      html  css  js  c++  java
  • 模型评估与选择

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

    〇. 经验误差与过拟合

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

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

    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

  • 相关阅读:
    win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
    JQUERY UI Datepicker Demo
    Official online document, install svn server in centOS
    JAVE not work in linux
    AMR 转mp3 失败
    XD, XR, DR 股票
    Linux 下MySql 重置密码
    Difinition Of Done
    Apache, Tomcat, JK Configuration Example
    Linux 安装tomcat
  • 原文地址:https://www.cnblogs.com/crayonsea/p/14928148.html
Copyright © 2011-2022 走看看