• 西瓜书-2.2评估方法


    2.2-评估方法

    使用测试集,测试学习器对新样本的判别能力。后以测试集上的“测试误差”作为泛化误差的近似

    注意:测试集应该尽可能与训练集互斥

    为得到泛化性能强的模型,且当只有1个包含m个样例的数据集D(如下图2.2-1),既要训练也要测试,需要通过对D进行适当处理,从中产生训练集S和测试集T
    D = { ( x 1 , y 1 ) , . . . , ( x m , y m ) } 2.2 − 1 D=\{(x_1,y_1),...,(x_m,y_m)\}\qquad2.2-1 D={(x1,y1),...,(xm,ym)}2.21
    方法如下:

    2.2.1-留出法

    直接将数据集D划分为2个互斥的集合,一个作为训练集S,一个作为测试集T


    注意:

    • 训练集和测试集的划分要尽可能保持数据分布的一致性

      对于分类任务,至少保持样本的类别比例相似,若从采样的角度来看,则保留类别比例的采样方式称为分层采样

    • 即使在给定训练集、测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。

    结论:

    • 单次使用留出法得到的估计结果一般不可靠,在使用留出法时,一般采用若干次随即划分重复进行试验评估取平均值作为留出法的评估结果。

    问题&解法:

    • 由于留出法需要将D划分为S和T,会导致训练集S包含绝大多数样本,则训练出的模型可能更接近用D训练出的模型,而T则会较小评估结果可能不准确;若T样本多一些,则训练集S与D的差别更大了,训练出的模型和用D训练出的模型相比可能会有较大差别,从而会降低评估结果保真性
      • 偏差-方差:测试集T小时,评估结果的方差较大;训练集S小时,评估结果的偏差较大。
        • 粗浅解释:以靶心图为例,中间核心区是正确预测。
          • 偏差大:预测结果偏离中心程度大
          • 方差大:预测结果较聚合
    • 没有完美解决方案,常见做法是将大约2/3~4/5的样本用于训练,其余用于测试。

    2.2.2-交叉验证法

    先将数据集D划分为k个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性(即从D中通过分层采样得到),然后每次用k-1个子集的并集作为训练集余下的1个子集作为测试集;如此可获得k组训练/测试集,从而可进行k次训练和测试,最终返回这k个测试结果的均值

    交叉验证法评估结果的稳定性和保真性很大程度上取决于k,故又称k折交叉验证、k倍交叉验证。

    k最常用的取值为10,其他常用有5、20。


    使用细节:

    • 类似留出法,将数据集D划分k个,存在多种划分方式,因此同样要随机使用不同的划分重复p次,最终评估结果是这p次k折交叉验证结果的均值,如常见的“10次10折交叉验证”,其与“100次留出法”类似,都进行了100次训练/测试。
    • 若数据集D中包含m个样本,若令k=m,则得到了交叉验证法的1个特例:留一法。

    2.2.3-自助法

    上述方法都会出现实际评估的模型所使用的训练集比D小,导致因训练样本规模不同而导致的估计偏差。

    自助法:以自助采样法为基础。

    给定包含m个样本的数据集D,对其进行采样产生的数据集D‘:每次随机从D中挑选1个样本,将其拷贝放入D’,然后将该样本放回D中,使得其下次采样仍可能被采样;上述过程重复执行m次,可得到包含m个样本的数据集D‘,为结果。

    由于随机采样存在概率问题,样本在m次采样中不被采到的概率为:
    ( 1 − 1 m ) m (1\quad-\quad\frac{1}{m})^m (1m1)m
    m取无穷时存在极限,则数据集D中约有**36.8%**的样本未出现在采样数据集D’中。

    因此将D‘用作训练集,D\D’(\表示集合减法)用作测试集;

    如此实际评估的模型与期望评估的模型都使用m个训练样本,且仍有数据总量约1/3的、没在训练集中出现的样本用于测试,如此的测试结果称为“包外估计”。


    使用细节:

    • 数据集较小难以有效划分训练集/测试集时有用。
    • 自助法能从初始数据集中产生多个不同的训练集,其对集成学习等方法有很大好处。

    缺陷:

    • 自助法产生的数据集改变了初始数据集的分布,会引入估计偏差,因此初始数据量足够时,留出法和交叉验证法更常用。

    2.2.4-调参与最终模型

    介绍:

    • 大多学习算法有参数需要设定,参数配置不同,学得模型的性能往往有明显差别。因此除对适用学习算法进行选择,还需对算法参数进行设定,即“参数调节”或简称“调参”。

    意义:

    • 理论上,对每种参数训练出模型,然后将对应最好模型的参数作为结果。
    • 参数大多是在实数范围内取值,而且大型“深度学习”模型甚至有上百亿个参数,这会导致极大的调参工程量。

    解决:

    • 给定包含m个样本的数据集D,在模型评估与选择过程中由于需要留出一部分数据进行评估测试,只使用了一部分数据训练模型。因此在模型选择完成后,学习算法和参数配置都已选定,此时应该用数据集D重新训练模型。该模型在训练过程中使用了所有m个样本,这才是最终提交给用户的模型。
    • 对每个参数选定1个范围和变化步长。

    划分:

    • 测试数据:学得模型在实际使用中遇到的数据。
    • 验证集:模型评估与选择中用于评估测试的数据集。
    • 举例:在研究对比不同算法的泛化性能时,用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集验证集,基于验证集上的性能进行模型选择和调参
  • 相关阅读:
    10.SpringBoot实战演练
    Stable Diffusion 本地部署教程
    QT连接OpenCV库实现人脸识别
    【OpenCV】Chapter5.空间域图像滤波
    多张图片转为pdf怎么弄?
    使用stream流合并多个List(根据实体类特定属性合并)
    docker alpine:3.16 root权限安装Anaconda3-2020.07-Linux-x86_64和jdk
    docker镜像学习
    鸿蒙OpenHarmony多线程能力场景化示例实践
    1. Spring Boot 3 入门学习教程之开发第一个 Spring Boot 应用程序
  • 原文地址:https://blog.csdn.net/qq_43447401/article/details/126355561