目录

1 Holdout检验

2 交叉检验

2.1 Leave p-out cross-validation

2.2 Leave-one-out cross-validation

2.3 Holdout cross-validation

2.4 k-fold cross-validation

2.5 Repeated random subsampling validation

2.6 Stratified k-fold cross-validation

2.7 Time Series cross-validation

2.8 Nested cross-validation

3 自助法​​​​​​​


1 Holdout检验

Holdout 检验是最简单也是最直接的验证方法,它将原始的样本集合随机划分训练集和验证集两部分。比方说,对于一个点击率预测模型,我们把样本按照70%~30% 的比例分成两部分,70% 的样本用于模型训练;30% 的样本用于模型验证,包括绘制ROC曲线、计算精确率和召回率等指标来评估模型性能。

Holdout 检验的缺点很明显,即在验证集上计算出来的最后评估指标与原始分组有很大关系。为了消除随机性,研究者们引入了“交叉检验”的思想。

2 交叉检验

交叉验证(也称为“过采样”技术)是数据科学项目的基本要素。 它是一种重采样过程,用于评估机器学习模型并访问该模型对独立测试数据集的性能。

在本文中,您可以阅读以下大约8种不同的交叉验证技术,各有其优缺点:

  1. Leave p out cross-validation
  2. Leave one out cross-validation
  3. Holdout cross-validation
  4. Repeated random subsampling validation
  5. k-fold cross-validation
  6. Stratified k-fold cross-validation
  7. Time Series cross-validation
  8. Nested cross-validation

在介绍交叉验证技术之前,让我们知道为什么在数据科学项目中应使用交叉验证。

为什么交叉验证很重要?

我们经常将数据集随机分为训练数据测试数据,以开发机器学习模型。 训练数据用于训练ML模型,同一模型在独立的测试数据上进行测试以评估模型的性能。

随着分裂随机状态的变化,模型的准确性也会发生变化,因此我们无法为模型获得固定的准确性。 测试数据应与训练数据无关,以免发生数据泄漏。 在使用训练数据开发ML模型的过程中,需要评估模型的性能。 这就是交叉验证数据的重要性。

数据需要分为:

  • 训练数据:用于模型开发
  • 验证数据:用于验证相同模型的性能

简单来说,交叉验证使我们可以更好地利用我们的数据。

2.1 Leave p-out cross-validation

LpOCV是一种详尽的交叉验证技术,涉及使用p个观测作为验证数据,而其余数据则用于训练模型。 以所有方式重复此步骤,以在p个观察值的验证集和一个训练集上切割原始样本。

推荐使用p = 2LpOCV变体(称为休假配对交叉验证)作为估计二进制分类器ROC曲线下面积的几乎无偏的方法。

事实上, 留一验证是留p验证的特例。留p验证是每次留下p个样本作为验证集,而从n个元

素中选择p个元素有 种可能,因此它的时间开销更是远远高于留一验证,故而很少在实际工程中被应用。

2.2 Leave-one-out cross-validation

留一法交叉验证(LOOCV)是一种详尽的穷尽验证技术。 在p = 1的情况下,它是LpOCV的类别。

对于具有n行的数据集,选择第1行进行验证,其余(n-1)行用于训练模型。对于下一个迭代,选择第2行进行验证,然后重置来训练模型。类似地,这个过程重复进行,直到n步或达到所需的操作次数。

以上两种交叉验证技术都是详尽交叉验证的类型。穷尽性交叉验证方法是交叉验证方法,以所有可能的方式学习和测试。他们有相同的优点和缺点讨论如下:

优点: 简单,易于理解和实施

缺点: 该模型可能会导致较低的偏差、所需的计算时间长

2.3 Holdout cross-validation

保留技术是一种详尽的交叉验证方法,该方法根据数据分析将数据集随机分为训练数据测试数据

保留交叉验证的情况下,数据集被随机分为训练验证数据。 通常,训练数据的分割不仅仅是测试数据。 训练数据用于推导模型,而验证数据用于评估模型的性能。

用于训练模型的数据越多,模型越好。 对于保留交叉验证方法,需要从训练中隔离大量数据。

下图阐述了 holdout cross-validation 的工作流程,其中我们重复地使用 validation set 来评估参数调整时(已经历训练的过程)模型的性能。一旦我们对参数值满意,我们就将在测试集(新的数据集)上评估模型的泛化误差。

优点:和以前一样,简单,易于理解和实施

缺点: 不适合不平衡数据集、许多数据与训练模型隔离;性能的评估对training set 和 validation set分割的比例较为敏感

2.4 k-fold cross-validation

在k折交叉验证中,原始数据集被平均分为k个子部分或折叠。 从k折或组中,对于每次迭代,选择一组作为验证数据,其余(k-1)个组选择为训练数据。

该过程重复k次,直到将每个组视为验证并保留为训练数据为止。

模型的最终精度是通过获取k模型验证数据的平均精度来计算的。

LOOCV是k折交叉验证的变体,其中k = n。

优点:

  • 该模型偏差低
  • 时间复杂度低
  • 整个数据集可用于训练和验证

缺点:不适合不平衡数据集。

2.5 Repeated random subsampling validation

重复的随机子采样验证(也称为蒙特卡洛交叉验证)将数据集随机分为训练验证。 数据集的k倍交叉验证不太可能分成几类,而不是成组或成对,而是在这种情况下随机地成组。

迭代次数不是固定的,而是由分析决定的。 然后将结果平均化。

优点: 训练和验证拆分的比例不取决于迭代或分区的数量

缺点: 某些样本可能无法选择用于训练或验证、不适合不平衡数据集

2.6 Stratified k-fold cross-validation

对于上面讨论的所有交叉验证技术,它们可能不适用于不平衡的数据集分层k折交叉验证解决了数据集不平衡的问题。

在分层k倍交叉验证中,数据集被划分为k个组或折叠,以使验证数据具有相等数量的目标类标签实例。 这样可以确保在验证或训练数据中不会出现一个特定的类,尤其是在数据集不平衡时。

分层k折交叉验证,每折具有相等的目标类实例。

最终分数是通过取各折分数的平均值来计算的。

优点: 对于不平衡的数据集,效果很好。

缺点: 现在适合时间序列数据集。

2.7 Time Series cross-validation

数据的顺序对于与时间序列相关的问题非常重要。 对于与时间相关的数据集,将数据随机拆分或k折拆分为训练和验证可能不会产生良好的结果。

对于时间序列数据集,根据时间将数据分为训练验证,也称为前向链接方法滚动交叉验证。 对于特定的迭代,可以将训练数据的下一个实例视为验证数据。

如上图所述,对于第一个迭代,第一个3行被视为训练数据,下一个实例T4是验证数据。 选择训练和验证数据的机会将被进一步迭代。

2.8 Nested cross-validation

在进行k折分层k折交叉验证的情况下,我们对训练和测试数据中的错误估计差。 超参数调整是在较早的方法中单独完成的。 当交叉验证同时用于调整超参数泛化误差估计时,需要嵌套交叉验证

嵌套交叉验证可同时应用于k折和分层k折变体。

结论:

交叉验证用于比较和评估ML模型的性能。 在本文中,我们介绍了8种交叉验证技术及其优缺点。 k折和分层k折交叉验证是最常用的技术。 时间序列交叉验证最适合与时间序列相关的问题。

这些交叉验证的实现可以在sklearn包中找到。 有兴趣的读者可以阅读sklearn文档以获取更多详细信息。3.1. Cross-validation: evaluating estimator performance — scikit-learn 1.0.2 documentation

3 自助法

不管是Holdout检验还是交叉检验,都是基于划分训练集和测试集的方法进行模型评估的。然而,当样本规模比较小时,将样本集进行划分会让训练集进一步减小,这可能会影响模型训练效果。有没有能维持训练集样本规模的验证方法呢?自助法可以比较好地解决这个问题。

自助法是基于自助采样法的检验方法。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集,进行模型验证,这就是自助法的验证过程。

问题 在自助法的采样过程中,对n个样本进行n次自助抽样,当n趋于无穷大时, 最终有多少数据从未被选择过?

答:

因此,当样本数很大时,大约有36.8%的样本从未被选择过,可作为验证集。

模型评估过程中,有哪些主要的验证方法?相关推荐

  1. 什么是欠拟合现象_在模型评估过程中,过拟合和欠拟合具体指什么现象?能否说出几种降低过拟合和欠拟合风险的方法?...

    在模型评估过程中,过拟合和欠拟合具体指什么现象? 过拟合是指模型在训练数据拟合呈过当的情况,反应到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现很差.欠拟合指的是模型在训练和预测 ...

  2. 什么是欠拟合现象_在模型评估过程中,过拟合和欠拟合具体指什么现象

    在模型评估过程中,过拟合和欠拟合具体指什么现象? 过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现好,但是在测试集和新数据上的表现较差. 欠拟合指的是模型在训练和 ...

  3. PHP中一些常用证件的验证方法

    内容转自:PHP中一些常用证件的验证方法 <?php/*** 来往港澳通行证:* 1.W,C+8位数字* 2.7位数字*/ function gapassport_verify($content ...

  4. 真香啊,机器学习中这3种交叉验证方法要掌握

    交叉验证是机器学习中常用的一种策略,其核心是对数据集进行划分,本文介绍sklearn中的3种交叉验证时划分数据集的方法: KFold StratifiedKFold GroupKFold 这里来举例说 ...

  5. 深度盘点:详细介绍机器学习中的7种交叉验证方法!

    来源:机器学习社区 本文约3400字,建议阅读10分钟 本文与你分享7种最常用的交叉验证技术及其优缺点,提供了每种技术的代码片段. 在任何有监督机器学习项目的模型构建阶段,我们训练模型的目的是从标记的 ...

  6. 【机器学习】深度盘点:详细介绍 Python 中的 7 种交叉验证方法!

    在任何有监督机器学习项目的模型构建阶段,我们训练模型的目的是从标记的示例中学习所有权重和偏差的最佳值. 如果我们使用相同的标记示例来测试我们的模型,那么这将是一个方法论错误,因为一个只会重复刚刚看到的 ...

  7. 详细介绍机器学习中的交叉验证方法

    机器学习的交叉验证 前言 HoldOut交叉验证 K折交叉验证 分层K折交叉验证 Leave P Out 留一交叉验证 蒙特卡罗交叉验证 时间序列交叉验证 前言 在研究生阶段接触机器学习的时候,我导问 ...

  8. ML之Validation:机器学习中模型验证方法的简介、代码实现、案例应用之详细攻略

    ML之Validation:机器学习中模型验证方法的简介.代码实现.案例应用之详细攻略 目录 模型验证方法的简介 1.Hold-out验证 2.K-折交叉验证 3.自助重采样 模型验证方法的代码实现 ...

  9. ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练)

    ML:模型训练/模型评估中常用的两种方法代码实现(留一法一次性切分训练和K折交叉验证训练) 目录 模型训练评估中常用的两种方法代码实现 T1.留一法一次性切分训练 T2.K折交叉验证训 模型训练评估中 ...

最新文章

  1. docker 时间不一致,时区设置
  2. Cpp 对象模型探索 / 多重继承下基类指针释放子类对象的原理说明(虚析构函数的作用)
  3. 工程和模块的关系以及继承和依赖的概念
  4. 关系数据库——视图/存储过程/触发器
  5. java计算加速减速_Javascript加速运动与减速运动
  6. ORACLE修改表信息
  7. 游戏框架(Unity3D游戏客户端基础框架)
  8. laravel文档工具
  9. Windows11常用快捷键总结(包含触控板使用技巧)
  10. 清华大学c语言程序设计期末试卷,清华大学出版社C语言程序设计习题.doc
  11. 《Python数据分析与挖掘实战》示例源码免费下载
  12. 平衡小车c语言程序,【全部开源】两轮平衡小车(原理图、PCB、程序源码、BOM等)...
  13. 2021年vmware安装archlinux
  14. [工具使用]Wireshark
  15. C语言结构体存储空间分配的原则
  16. X86机器安装麒麟UOS双系统
  17. 组装电脑什么配置才适合自己
  18. 用c++做俄罗斯方块
  19. java.lang.IllegalArgumentException: Last unit does not have enough valid bits解决方案
  20. 玩转基因组浏览器之展示RNA二级结构

热门文章

  1. 服务器和交换机物理连接_利用Calico融合物理网络的云原生容器SDN方案
  2. RFID仓库管理解决方案-RFID智能仓储-RFID智能仓储-新导智能
  3. 2018年AppleDeveloper苹果开发者账号组织名称修改
  4. GE 开放操作系统 Predix,有望成工业互联网事实标准
  5. SAP中类型(Type)和类别(Category)详解及其区别
  6. activiti入门系列文章9 - 委派与转办
  7. delphi 11(10.5) 来了
  8. 系统卡顿有服务器硬件的原因,服务器出现卡顿,一般是这个3个原因!
  9. python开发bi报表_bi报表
  10. antdvue走马灯一页显示多张图片的效果