当前位置: 首页 > news >正文

机器学习模型评估与选择

一、经验误差与过拟合

  • 误差
    • 训练误差(经验误差):在训练集上的误差。
    • 泛化误差:模型应用到新样本上的误差。
  • 过拟合(麻烦):训练集上表现太好,但新样本上表现不好(训练过度把训练集样本特征当作了样本的一般特征)。
  • 欠拟合:训练集上就没表现好。

二、评估方法

  • 评估泛化误差 ⟹ \Longrightarrow 设置一个测试集(测试集上的误差可近似于模型的泛化误差)。

:测试样本要尽可能的不出现在训练样本中。

  • 数据集划分方法

    • 留出法(常用):直接将整个数据集分为两个集合(训练集、测试集),尽可能保证数据分布的一致性(分层抽样(等比例),……)。
    • 交叉验证法(常用):将数据集分为 k k k 份,每次随机选择 k − 1 k-1 k1 个子集作为训练集,剩下一个子集作为测试集(常用 10 10 10 折交叉验证),多次划分取均值。

    :当 k k k 等于样本数时,即为交叉验证的特殊情况留一法(但是样本数量过多就不适用)。

    • 自助法(不常用):每次都是有放回抽样,这样保证了数据集中有一部分样本不会出现在训练集中(适用于集成学习)。

:一般在模型训练和应用的过程中,将会把数据集分为训练数据和测试数据,前者又分为训练集和验证集,根据验证集上的效果来进行模型选择和调参,模型在后者上的表现效果主要是评估模型泛化能力。

三、模型性能度量

  • 错误率精度(分类任务)

  • 查准率查全率 F 1 F1 F1

    • 二分类举例:

      • 真实情况预测结果
        正例反例
        正例TP(真正例)FN(假反例)
        反例FP(假正例)TN(真反例)

      其中查准率 P P P 与查全率 R R R (二者相互矛盾)分别定义为:
      P = T P T P + F P , R = T P T P + F N . \begin{align*} P=\frac{TP}{TP+FP},\\ R=\frac{TP}{TP+FN}. \end{align*} P=TP+FPTP,R=TP+FNTP.

      • 平衡点:查准率=查全率的位置。
      • F 1 F1 F1 是基于查准率和查全率的调和平均: 1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) \frac{1}{F1}=\frac{1}{2}\cdot(\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1)
      • F 1 F1 F1 的一般形式为 F β F_\beta Fβ (加权调和平均): F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R ( β > 0 ) F_\beta=\frac{(1+\beta^2)\times P\times R}{(\beta^2\times P)+R}\quad(\beta>0) Fβ=(β2×P)+R(1+β2)×P×R(β>0)。(其中 β > 1 \beta>1 β>1 时查全率影响较大, β < 1 \beta<1 β<1 时查准率影响更大, β = 1 \beta=1 β=1 时变为标准的 F 1 F1 F1)。

    :在 P − R P-R PR 曲线图中,若一个学习器的曲线被另一个学习器的曲线包住则后者的性能好于前者(横轴为查全率、纵轴为查准率)。

    • 在多分类任务中,会产生多个混淆矩阵,如果先计算出查准率和查全率再求平均值就得到了宏查准率宏查全率,再使用宏查准、查全率按照上述对应的公式替换,就得到了 F 1 F1 F1 ;若先对 T P 、 F P 、 T N 、 F N TP、FP、TN、FN TPFPTNFN 这些求平均,再计算查准率、查全率、 F 1 F1 F1 就得到了微查准率微查全率 F 1 F1 F1
  • R O C ROC ROC A U C AUC AUC

    • R O C ROC ROC(假正例率为横轴,真正例率):
      T P R = T P T P + F N , F P R = F P T N + F P . TPR=\frac{TP}{TP+FN},\\ FPR=\frac{FP}{TN+FP}. TPR=TP+FNTP,FPR=TN+FPFP.
      性能对比上的方式和 P − R P-R PR 曲线是一样的;当 R O C ROC ROC 图中的曲线交叉的时候就出现 A U C AUC AUC 的概念,即 R O C ROC ROC 曲线下的面积(类似定积分精确定义求面积的含义):
      A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ⋅ ( y i + y i + 1 ) . AUC=\frac{1}{2}\sum^{m-1}_{i=1}(x_{i+1}-x_{i})\cdot(y_{i}+y_{i+1}). AUC=21i=1m1(xi+1xi)(yi+yi+1).
  • 代价敏感错误率、代价曲线

    • 上述的性能度量都默认的“错误”的时候代价都是均等的,

    • 二分类的代价矩阵

      真实类别预测类别
      第 0 类第 1 类
      第 0 类0cost01
      第 1 类cost100
    • 一般都希望“总体代价”能最小,若上述的第 0 0 0 类为正类、第 1 1 1 类为反类,则代价敏感错误率为:
      E ( f ; D ; c o s t ) = 1 m ( ∑ x i ∈ D + Ⅱ ( f ( x i ) ≠ y i ) × c o s t 01 + ∑ x i ∈ D − Ⅱ ( f ( x i ) ≠ y i ) × c o s t 10 ) . E(f;D;cost)=\frac{1}{m}\Bigg(\sum_{x_i\in D^+}Ⅱ\big(f(x_i)\neq y_i\big)\times cost_{01}+\sum_{x_i\in D^-}Ⅱ\big(f(x_i)\neq y_i\big)\times cost_{10}\Bigg). E(f;D;cost)=m1(xiD+(f(xi)=yi)×cost01+xiD(f(xi)=yi)×cost10).
      其中 m m m D D D 的总样本数, D D D 是样例集, D + D^+ D+ 是正例子集、 D − D^- D 是反例子集;当然多分类的任务也是同样的道理。

      正概率代价(取值[0, 1]):
      P ( + ) c o s t = p × c o s t 01 p × c o s t 01 + ( 1 − p ) × c o s t 10 . P(+)cost=\frac{p\times cost_{01}}{p\times cost_{01}+(1-p)\times cost_{10}}. P(+)cost=p×cost01+(1p)×cost10p×cost01.
      其中 p p p 表示的是样例为正例的概率;

      归一化代价(取值[0, 1]):
      c o s t n o r m = F N R × p × c o s t 01 + F P R × ( 1 − p ) × c o s t 10 p × c o s t 01 + ( 1 − p ) × c o s t 10 . cost_{norm}=\frac{FNR\times p\times cost_{01}+FPR\times (1-p)\times cost_{10}}{p\times cost_{01}+(1-p)\times cost_{10}}. costnorm=p×cost01+(1p)×cost10FNR×p×cost01+FPR×(1p)×cost10.
      其中 F N R = 1 − T P R FNR=1-TPR FNR=1TPR正概率代价图横轴为正概率代价,纵轴为归一化代价;绘制方式为从 R O C ROC ROC 曲线上找到一点 ( T P R , F P R ) (TPR,FPR) (TPR,FPR) 计算出对应的 F N R FNR FNR ,然后于正概率代价图上绘制一条从 ( 0 , F P R ) (0,FPR) (0,FPR) ( 1 , F N R ) (1,FNR) (1,FNR) 的线段,线段与 x x x 轴围成的面积为该条件下的期望总体代价,这样画成的所有线段与 x x x 轴围成的面积为所有条件下学习器的期望总体代价。

  • 比较检验(参考概率论与数理统计的假设检验部分)

    • 假设检验

      相当于从 m m m 个样本中选出 ε × m ^ \hat{\varepsilon \times m} ε×m^ 个样本。

    • 交叉验证 t t t 检验(对应 k k k 折交叉验证, t t t 分布)

    • M c N e m a r McNemar McNemar 检验 χ 2 \chi^2 χ2 分布)

    • F r i e d m a n Friedman Friedman 检验与 N e m e n y i Nemenyi Nemenyi 后续检验 F F F 分布)

  • 误差、偏差

    • 泛化误差可分解为偏差、方差与噪声之和。

    • 训练不足 → \rightarrow 模型拟合能力不强 → \rightarrow 偏差主导泛化错误率

      训练加深 → \rightarrow 模型拟合能力增强 → \rightarrow 方差主导泛化错误率

相关文章:

  • java基础面试题。
  • Grdle版本与Android Gradle Plugin版本, Android Studio对应关系
  • GRPO训练布局感知的强化学习多模态文档解析框架-Infinity-Parser
  • 【速写】policy与reward分词器冲突问题(附XAI阅读推荐)
  • web性能优化
  • 电感篇---常见作用
  • 黑马python(六)
  • houdini 简单流体模拟 学习笔记
  • windows server部署.net项目(nopcommerce)
  • 1.2、不同的波段对于传送网有什么意义
  • C语言主要关键字及其用途
  • ubuntu 22.04设置时区和24小时制显示——筑梦之路
  • Leetcode 3584. Maximum Product of First and Last Elements of a Subsequence
  • C# CS_Prj01 串口通信控制台程序
  • sparseDrive(1): 论文解读
  • Faithful Logical Reasoning via Symbolic Chain-of-Thought
  • 第十六届蓝桥杯国赛(2025)C/C++B组 蓝桥星数字 独家解析
  • 超标量处理器设计9-执行
  • 647. 回文子串
  • 进程间通信之进程间传递文件描述符
  • 公司备案 网站主办者名称/大连网站搜索排名
  • b2c电商网站建设/合肥seo报价
  • 哪里有建网站的/完整企业网站模板
  • 十大免费游戏网站点开即玩/网络推广是啥
  • 网站必须天天更新吗/亚马逊查关键词搜索量的工具
  • 我想创建一个网站/如何实现网站的快速排名