【交叉验证】bootstrapped 5-fold nested cross validation

机器学习:Python嵌套交叉验证 在每次交叉验证中,通过在内层循环中执行交叉验证来选择一组超参数,然后根据内层交叉验证的结果来评估模型的性能并选择最优的超参数。嵌套交叉验证在机器学习中常用于模型选择和超参数调优。由于内外层循环的结构,它可以更准确地评估不同超参数组合的性能,并选择在不同数据集划分下表现最优的模型。此时,选择最优超参数的方式有多种,如选择性能最好的一组超参数、选择平均性能最好的一组超参数等。最终评估:在外层循环的所有迭代结束后,选择在测试集上性能最佳的超参数组合作为最优超参数,并使用整个训练集进行模型训练,以获得最终模型。 阅读详情

1、nested cross validation【嵌套交叉验证】

(1)传统k折交叉验证

只有一个loop循环,即内层循环
将数据集切分为k份,取一份作为测试模型的数据,其余数据用于训练模型。

(2)嵌套交叉验证

更多内容来自
例子1

使用场景:当计算成本不是很大时,需要考虑可以提供的硬件条件。 如果满足以上两个标准,就可以考虑使用嵌套交叉验证来计算数据,得到几乎无偏的估计误差,从而对比不同算法的表现。

有两个loops(循环),即内层循环和外层循环。
对于在K-Fold中每一个i,都有一个嵌套的K-Fold交叉验证。
运行流程包含两个循环,即外层循环和内层循环。
内层循环是指带有搜索模型最佳超参数功能的交叉验证,目的是给外层循环提供模型的最佳超参数。例如,随机搜索或者网格搜索。
而外层循环是给内层循环提供训练数据,同时保留部分数据,以作对内层循环模型的测试。
通过这样的方式,可以防止数据的信息泄漏,以得到相对较低的模型评分偏差。
在这里插入图片描述

伪代码:
其中Require表示需要提供的超参数,RandomSample( P s e t s {P}{sets} Psets)是一个从超参数网格中获取随机数据集的函数。
在这里插入图片描述

Ⅰ优点

通过对基础模型泛化误差的估计来进行超参数的搜索,以得到模型最佳参数。评估了模型的泛化能力

Ⅱ缺点

其一、可能会造成信息泄漏;其二、由于是对相同数据进行误差估计,所以会导致较高的偏差(当用可能的模型最佳超参数对相同的训练集和测试集进行误差的计算时,模型是有偏的,会导致较大偏差) 。 模型选择看重偏差和方差,因此一个好的评估模型真实误差的方法应是结合无偏和低方差两个方面。训练时间长,计算量大。

2、bootstrap 【自举法】

背景:
我们的项目并不总是有充足的数据。通常,我们只有一个样本数据集可供使用,由于缺乏资源我们无法执行重复实验(例如A/B测试)。

幸运的是,我们有重采样的方法来充分利用我们所拥有的数据。自举法(Bootstrapping)是一种重采样技术,可以为我们解决这个问题。
详细算法介绍

Bootstrapping 是一种统计重采样技术,通过放回采样来创建数据的多个子集。该技术允许您通过从数据集中重复采样来估计统计数据(例如模型性能指标)的变异性。

随机抽样,有放回的抽样,重复多次。

Bootstrapped Cross-Validation: :在交叉验证的背景下,Bootstrapping 不仅涉及一组折叠,还涉及通过引导创建的多组折叠。这意味着对于交叉验证外循环中的每个折叠,训练集是通过从整个数据集中进行放回采样来生成的。

3、Bootstrapped 5-Fold Nested Cross-Validation

(1)Bootstrapped 5-Fold

在这种特定情况下,交叉验证的外循环涉及 5 重。每一次折叠代表不同的训练-测试分割。每个折叠的训练集都是通过引导生成的。

(2)Nested Cross-Validation

在每个外层折叠内,都有一个交叉验证的内部循环。该内部循环通常还执行一定数量的折叠(例如,5),并且它用于超参数调整或模型选择。这为评估过程增加了另一层稳健性。

python代码实现

pip install scikit-learn tensorflow

import numpy as np
from sklearn.model_selection import StratifiedKFold
from sklearn.metrics import accuracy_score
from sklearn.utils import resample
from tensorflow import keras
from tensorflow.keras import layers

# Generate some example data
X, y = np.random.rand(1000, 10), np.random.randint(2, size=(1000,))

# Define your deep learning model using Keras
def create_model():
    model = keras<
3种六轴IMU姿态解算算法对比:互补滤波、Mahony与卡尔曼滤波性能实测 本文深入对比了三种六轴IMU姿态解算算法:互补滤波、Mahony与卡尔曼滤波的性能表现。通过实测数据分析了各算法在精度、计算复杂度和适用场景上的差异,为无人机、机器人等运动控制系统提供了选型建议。重点探讨了六轴陀螺仪与加速度传感器的数据融合技术,帮助开发者根据项目需求选择最优解算方案。 阅读详情

相关推荐

Visual Studio 2015 插件开发 从入门到放弃(一)

必需知识:C#和Visual Studio (1)安装 Visual Studio 2015 的时候选择 Visual Studio 扩展性工具(Visual Studio Extensibility Tools)。对于已经安装好 Visual Studio 2015 的小伙伴,可以找VS2015的安装包,或者在程序与功能中找VS2015双击,在VS2015界面中选择 修改,再选择

AncientPeople的博客 2万+

用易经智慧看懂人工智能:64卦中的科技密码--当古老智慧遇见未来科技

在人工智能狂飙突进的今天,我们总在追问:这些代码构建的智能究竟会带人类走向何方?或许答案早已藏在《周易》的六十四卦中——这本中华文明的“源代码”,正用一种跨越时空的语言,悄悄解释着最前沿的科技秘密。

weixin_38410320的博客 2082

Android安全支付(1)-整体架构-keymint

(1)接口定义hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl。keymint是keymaster v4之后的替代设计。所以android 15上最好采用keymint的接口进行硬件功能的对接。同时,我们会集成一款紫光的芯片。3.可以用keyStore.getKey()来获取存储在keyStore中的数据进行加密和解密。四、关于keymint的接口定义和具体实现。

Android系统开发-VR OS-系统安全隐私 1767

Python地理空间数据库之geopandas使用详解

地理空间数据分析在许多领域中都有着广泛的应用,包括地理信息系统(GIS)、城市规划、环境科学、地质勘探等。Python GeoPandas是一个强大的库,旨在简化地理空间数据的处理和分析。本文将深入介绍GeoPandas库,包括其基本概念、功能特性、示例代码以及在实际应用中的应用场景。

Rocky006的博客 1万+

手把手教你用QEMU虚拟化华为路由器固件(附完整网络配置指南)

本文提供了一份详尽的QEMU虚拟化华为路由器固件的实战指南。从固件解包、网络桥接配置到QEMU虚拟机启动,手把手教你搭建完整的嵌入式设备沙箱环境,特别适合安全研究、逆向分析和学习嵌入式系统工作原理。

tgb3456789的博客 937

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 562

Vue - 简约大气 404 页面

效果图 实现代码 复制即可。 <template> <div> <div class="error"> <!-- 图片可保存到本地 --> <img src="https://img-blog.csdnimg.cn/20210715111039922.png"> <p>抱歉!你访问的页面不存在或已删除 :( </p> <span class="back" @click="go(

🏆 前端领域优质创作者 3370

【1】Java 部分笔试题解析

解析A.abstract关键字应该放在class关键字之前。C.抽象方法不能有方法体。D缺少了class关键字。

博客 3941

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 【CPU占用】深度学习
下一篇: 【多实例学习】
jc菜鸟教程
博客等级 码龄7年 49粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值