机器学习——交叉验证(留一法、自助法)

2023-10-27

交叉验证的作用

很多时候我们都在纠结,交叉验证法到底有啥用???我不用这个咋的??

交叉验证是一种模型验证技术,可用于评估统计分析(模型)结果在其它独立数据集上的泛化能力。它主要用于预测,我们可以用它来评估预测模型在实践中的准确度。

准确来说:叫擦很严重就是来来回回反复的对模型进行刷新,最后得到的模型评估结果就是这K次验证的均值

from sklearn.model_selection import KFold

kf = KFold(n_splits = K, shuffle=True, random_state=0)
for train_index, test_index in kf.split(data):
    clt = model.fit(data[train_index], four_label[train_index])
    curr_score = curr_score + clt.score(data[test_index], four_label[test_index])
    print(clt.score(data[test_index], four_label[test_index]))

avg_score = curr_score / 5
print("平均准确率为:", avg_score)

留一法

如果当我们分出来的数据子集的数目和我们交叉验证的次数一样,那么就出现了留一法

但是留一法在数据量较大的时候,大量的模型计算开销过于庞大。

自助法

采样源数据集D1得到D2,从D1中随机挑选出一个小样本,放入新数据集D2 ,但D1的数据集总量不变.这样可以提高小数据模型的准确性

lim ⁡ ​ x → ∞ ( 1 − 1 m ​ ) m = 1 e ≈ 0.368 \lim​_{x \to \infty} (1−\frac{1}{m​})^m=\frac{1}{e}≈0.368 limx(1m1)m=e10.368

#自助法
import numpy as np
#任意设置一个数据集
X = [1,4,3,23,4,6,7,8,9,45,67,89,34,54,76,98,43,52]

#通过产生的随机数获得抽取样本的序号
bootstrapping = []
for i in range(len(X)):
    bootstrapping.append(np.floor(np.random.random()*len(X)))
#通过序号获得原始数据集中的数据
D_1 = []
for i in range(len(X)):
    D_1.append(X[int(bootstrapping[i])])
'''结果
[45, 52, 34, 9, 6, 54, 34, 1, 4, 54, 6, 8, 67, 4, 43, 9, 4, 67]
'''

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习——交叉验证(留一法、自助法) 的相关文章

随机推荐

  • JETBRAIN系列IDE改变终端的字体

    简介 JetBrains是一家捷克的软件开发公司 该公司位于捷克的布拉格 并在俄国的圣彼得堡及美国麻州波士顿都设有办公室 该公司最为人所熟知的产品是Java编程语言开发撰写时所用的集成开发环境 PhpStorm IntelliJ IDEA
  • frame 和iframe 的区别以及和frameset 的关系及应用

    1 frame不能脱离frameSet单独使用 iframe可以 2 frame不能放在body中 如下可以正常显示
  • C#让panel显示滚动条

    AutoScroll True AutoScrollMiniSize 450 450 设置逻辑区域尺寸 如果它大于控件尺寸就会出现滚动条
  • ffmpeg命令行示例

    在视频上覆盖一张照片 ffmpeg i video mkv i image png filter complex 0 v 1 v overlay out map out out mkv 生成5s的lavfi红色的视频 ffmpeg filt
  • mac brew安装 node 踩坑日记- n切换node不生效

    最近用了一个旧电脑开发 发现里面node管理混乱 有nvm n和homebrew 导致切换node 切换不了 开发也有莫名其妙的错误 所以我打算重新装一下node 使用n做为管理工具 1 删除nvm cd rm rf nvm 2 删除n s
  • 日语 五十音图快速记忆法

    平假名 清音 清音 段 段 段 段 段 行 a i u e o 行 ka ki ku ke ko 行 sa shi su se so 行 ta chi tsu te to 行 na ni nu ne no 行 ha hi fu he ho
  • 持久内存服务器大多数数据库管理系统,内存数据库VS传统数据库:如何在多个任务之间共享内存中的数据?...

    内存数据库 IMDB 将计算机数据存储在计算机的主存储器中 而不是磁盘驱动器中 以产生更快的响应时间 访问存储在内存中的数据可节省从磁盘查询数据所需的时间 依赖快速响应时间和实时数据管理的应用程序使用内存数据库 受益于内存数据库的行业包括电
  • PHY芯片的使用(三)在U-boot下网络PHY的移植

    1 概述 以太网 PHY 驱动移植 主要包括 Linux u boot 及设备树等三个方面标准框架下的移植 本文以裕太8511PHY为例展开说明 一般国产芯片厂商会提供在uboot linux下PHY的驱动 在uboot linux的PHY
  • 【MySQL入门指南】数据库基础DDL操作

    文章目录 MySQL库操作 一 SQL语句 二 创建数据库 1 语法 2 案例 3 极其不推荐的方式 三 查看数据库 1 语法 四 修改数据库 五 删除数据库 六 字符集与校验规则 1 是什么 2 相关指令 3 校验规则的影响 七 备份数据
  • 国外程序员推荐的好书

    1 代码大全 史蒂夫 迈克康奈尔 2 程序员修炼之道 3 计算机程序的构造和解释 4 C程序设计语言 5 算法导论 6 重构 改善既有代码的设计 7 设计模式 8 人月神话 9 计算机程序设计艺术 10 编译原理 龙书 11 深入浅出设计模
  • 使用GPU进行神经网络计算详解

    Pytorch学习笔记 六 使用GPU的简单LeNet网络模型中也提到了如何实现GPU上的运算 虽然不详细 但是也足够 总结 如果对于总结知识已经比较熟悉 那么下面的详解可以不用看 默认CPU进行计算 CPU上变量或模型不能与GPU上变量或
  • json转换javaBean属性值全null

    今天遇到了这么一个问题 解决办法分几步 所有转换javaBean的实体类实现序列化接口 将vo中不用于转换的属性剪掉 设置redis序列化方式为如下 Bean public RedisTemplate
  • JAVA多线程

    多线程 1 基本概念 1 1 程序 进程 线程 程序 完成一定功能的静态代码 对比火车站售票厅 进程 正在执行的静态代码 称为进程 对比北京西站售票 线程 为了并发执行一些异步任务 比对售票的中多个窗口 单核cpu和多核cpu java程启
  • 【机器学习】PCA、LDA、SVD

    线性变换 如果我们将向量 v 左乘矩阵 A 我们就会得到新的向量 b 也即可以表述说矩阵 A 对输入向量 v 执行了一次线性变换 且线性变换结果为 b 因此矩阵运算 Av b 就代表向量 v 通过一个变换 矩阵 A 得到向量 b 下面的实例
  • 智慧用电安全云监控系统

    近年来 我国电气火灾频发 2017年至2019年 我国共之间发生发展电气控制火灾31 1万起 占全国进行火灾总量及伤亡风险损失的30 以上 2019年全年共接报火灾23 3万起 电气火灾11 1万 占52 深圳市荣健市场 12 11 重大火
  • [项目管理-10]:软硬件项目管理 - 项目质量管理(质量)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 第10章 项目质量管理 10 1 基本概念 10 1 1 概述 10 1 2 项目的质量要求 10 1 3 项目质量的主要内容 10
  • ch1 密码学C/C++库介绍、C中大数的表示、接口语义

    Ch1 密码学C C 库介绍 话休絮烦 既然开了新坑 密码学C C 语言实现 就直接开始吧 这本书的作者是迈克尔 威尔森巴赫 Michael Welschenbach 是书籍的第二版 本书中描述的软件包名称为FLINT C 意思是 数论和密
  • JAVA直接量

    int a 2 char b f 类似以上的2 f 等为直接量 直接量可以是8种基本数据类型 也可以是null 但null只能复制给引用变量
  • 机器学习线性回归算法实验报告_机器学习——线性回归及kNN算法(作业)

    机器学习简介 人工智能AI 机器学习与深度学习 来自贪心学院课堂PPT 它们都是一种科学研究方法 宗旨即辅助人进行决策 减少人的不必要劳动时间 机器学习 训练模型 决策 判别 训练模型 前提选择已知的模型 如 LR kNN DT SVM M
  • 机器学习——交叉验证(留一法、自助法)

    文章目录 交叉验证的作用 留一法 自助法 交叉验证的作用 很多时候我们都在纠结 交叉验证法到底有啥用 我不用这个咋的 交叉验证是一种模型验证技术 可用于评估统计分析 模型 结果在其它独立数据集上的泛化能力 它主要用于预测 我们可以用它来评估