机器篇——决策树(六) 细说 评估指标的交叉验证

本小节,细说 评估指标的交叉验证。
 

三. 评估指标
3. 交叉验证(cross validation)
     (1). 概念
       交叉验证(cross validation, cv) 主要用于模型训练或建模应用中,如分类预测、PCR、PLS 回归建模等。在给定的样本空间中,拿出大部分样本的模型进行预测,并求这小部分样本的预测误差或预测精度,同时记录它们的加和平均值。这个过程迭代 k

 次,即 k

 折交叉。其中,把每个样本的预测误差平凡加和,称为 PRESS(Predicted Error Sum Of Squares)。

     (2). 目的
       ①. 用交叉验证的母的是为了得到可靠稳定的模型。在分类,建立 PC 或 PLS 模型时,一个很重要的因素是取多少个主成分的问题。用 cv 校验每个主成分下的 PRESS 值,选择 PRESS 值小的主成分数。或 PRESS 值不再变小时的主要分数。

       ②. 常用的精度测试方法主要是交叉验证,例如 10 折交叉验证(10-fold cross validation, 10-cv),将数据分成 10 份,轮流将其中 9 份做训练,1 份做验证,10 次的结果的均值作为对算法精度的估计,一般还需要进行多次 10-cv 求均值,例如:10 次 10-cv,以求更精确一点。

       ③. 交叉验证有时也称为交叉比对,如:10 折交叉比对。

     (3). 常见的交叉验证方式
       ①. Holdout 验证(留出法验证)

        a. 方法:

           将原始数据随机分为两组,一组作为训练集,一组作为验证集(比如:80% 为训练集,20% 为验证集)。利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此 Holdout Method 下分类器的性能指标。

           一般来说,Holdout 验证并非一种交叉验证,因为数据并没有交叉使用。随机从最初的样本中选出部分,形成交叉验证数据,而剩余的就当做训练数据。一般来说,少于原来样本 13
1
3
 的数据被选做验证数据(如:20% 为验证数据)

        b. 优点:

           处理简单,只需要随机把原数据分为两组即可。

        c. 缺点:

           严格意义来说 Holdout Method 并不算是 cv,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大关系,所以这种方法得到的结果其实并不具有说服性(主要原因是,训练集样本数太少,通常不足以代表母体样本的分布,导致 val 阶段辨识容易出现明显落差)。

       ②. k 折交叉验证 (k-fold cross validation, k-cv)

        a. 方法

           k 折交叉验证(k-cv),初始采样分割成 k 个子样本,一个单独的子样本被保留作为验证模型数据,其 k - 1 个样本用来训练。交叉验证重复 k 次,每个子样本验证一次,平均 k 次的结果或者使用其他结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10 折交叉验证(10-cv)是最常用的。特殊的,当 k = 2 时,为 2-cv。

        b. 优点

           k-cv 可以有效地避免过拟合以及以及欠拟合状态的发生,最后得到的结果也比较具有说服性。

        c. 缺点

           k 值选取上。

       ③. 留一验证(Leave One Out Validation, LOO-CV)

        a. 方法

           留一验证(LOO-CV),意指只使用原样本中的一项来做验证资料,而剩余的则留下来当做训练资料。这个步骤一直持续到每个样本都被当做一次验证资料。事实上,这等同于 k-cv 是一样的,其中 k 为原样本个数。在某些情况下是存在有效率的演算法。如使用 Kernel Regression 和 Tikhonov Regularization。

        b. 优点

         (a). 每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠。

         (b). 实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。

        c. 缺点

           计算成本高,因为需要建立的模型数量与原始数据样本数量相同,当原始数据样本数相当多时,LOO-CV 在实际操作上便有困难,几乎就是实现不了,除非每次训练分类器得到模型的速度很快,或是可以用并行化计算减少计算所需要的时间。

     (4). 深入
       ①. 使用交叉验证方法的目的主要有 3 个:

        a. 从有限的学习数据中获取尽可能多的有效信息

        b. 交叉验证从多个方向开始学习样本,可有效的避免陷入局部最小值

        c. 可以在一定程度上避免过拟合问题

       ②. 采用交叉验证方法时需要将学习数据样本划分为两部分:训练数据样本 和 验证数据样本。并且为了得到更好的学习效果,无论训练样本还是验证样本,都要尽可能参与学习。一般选取 10 折交叉验证即可达到较好的学习效果。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIA-RS基础-静态路由协议

摘要:静态路由是一种在网络中广泛应用的路由选择方案,它以其简单的配置和低开销而备受青睐。本文将介绍静态路由的配置方法、默认路由的设置、路由的负载分担和备份策略。通过学习本文,希望可以你能够掌握静态路由的基本概念和在华为模拟器中…

贪心算法个人见解

目录 基本思想: 贪心算法的步骤: 示例: 贪心算法(Greedy Algorithm)是一种基于贪心策略的算法范式,它在每一步选择中都采取当前状态下的最优选择,而不考虑全局最优解。贪心算法通常适用于那些…

U-Boot 之九 详解 Pinctrl 子系统、命令、初始化流程、使用方法

嵌入式芯片中,引脚复用是一个非常常见的功能,U-Boot 提供一个类似 Linux Kernel 的 Pinctrl 子系统来处理引脚复用功能。正好最近用到了这部分功能,需要移植 Pinctrl 驱动,特此记录一下学习过程。 架构 U-Boot 提供一个类似 Linux Kernel 的 Pinctrl 子系统,用来统一各芯…

Double 4 VR智能互动教学系统在小语种课堂中的教学应用

小语种课堂一直是教育领域的一个难点。由于语言本身的复杂性和文化背景的差异,小语种教学一直是一个挑战。传统的课堂教学方法往往难以激发学生的学习兴趣和动力,教学效果不尽如人意。而Double 4 VR智能互动教学系统为小语种课堂带来了新的可能。 Double…

视频服务网关的三大部署(三)

视频网关是软硬一体的一款产品,可提供多协议(RTSP/ONVIF/GB28181/海康ISUP/EHOME/大华、海康SDK等)的设备视频接入、采集、处理、存储和分发等服务, 配合视频网关云管理平台,可广泛应用于安防监控、智能检测、智慧园区…

RK WiFi部分信道在部分地区无法使用的原因

不同国家支持的WiFi信道不一样,需要正确设置wificountrycode 修改路径: device\rockchip\common\BoardConfig.mk 修改内容:androidboot.wificountrycodeXX 该属性会被解析为 ro.boot.wificountrycode framework层会在: framewor…

用好语言模型:temperature、top-p等核心参数解析

编者按:我们如何才能更好地控制大模型的输出? 本文将介绍几个关键参数,帮助读者更好地理解和运用 temperature、top-p、top-k、frequency penalty 和 presence penalty 等常见参数,以优化语言模型的生成效果。 文章详细解释了这些参数的作用…

leetcode 343.整数拆分 198.打家劫舍(动态规划)

OJ链接 &#xff1a;leetcode 343.整数拆分 代码&#xff1a; class Solution {public int integerBreak(int n) {int[] dp new int[n1];//每个n&#xff0c;拆分多个整数乘积的最大值dp [0] 0;dp [1] 1; for(int i 2 ; i<n; i){for(int j 0 ; j < i; j){dp[i] Ma…

如何看待数据确权问题?

今年8月&#xff0c;财政部发布了《关于印发<企业数据资源相关会计处理暂行规定>的通知》&#xff0c;将数据规划到公司资产负债表的“资产”项&#xff0c;明确了哪些数据资源可以计入无形资产、存货等资产项&#xff0c;从财务、会计处理角度对企业对数据资源享有的权利…

学习Java第52天,JDBC中statement的使用基本步骤

public class JdbcStatementQueryPart { /* * TODO: 步骤总结 (6步)* 1. 注册驱动* 2. 获取连接* 3. 创建statement* 4. 发送SQL语句,并获取结果* 5. 结果集解析* 6. 关闭资源 */public static void main(String[] args) throws SQLException {//1.注册驱动/…

小程序中的大道理--综述

前言 以下将用一个小程序来探讨一些大道理, 这些大道理包括可扩展性, 抽象与封装, 可维护性, 健壮性, 团队合作, 工具的利用, 可测试性, 自顶向下, 分而治之, 分层, 可读性, 模块化, 松耦合, MVC, 领域模型, 甚至对称性, 香农的信息论等等. 为什么不用大程序来说大道理呢? …

CMS指纹识别方式

一、手工识别 1.robots.txt文件 robots.txt文件我们写过爬虫的就知道,这个文件是告诉我们哪些目录是禁止爬取的。但是大部分的时候我们都能通过robots.txt文件来判断出cms的类型 如: 从wp路径可以看出这个是WordPress的cms 这个就比较明显了直接告诉我们是PageAdmin cms 也…

Python大语言模型实战-记录一次用ChatDev框架实现爬虫任务的完整过程

1、模型选择&#xff1a;GPT4 2、需求&#xff1a;在win10操作系统环境下&#xff0c;基于python3.10解释器&#xff0c;爬取豆瓣电影Top250的相关信息&#xff0c;包括电影详情链接&#xff0c;图片链接&#xff0c;影片中文名&#xff0c;影片外国名&#xff0c;评分&#x…

C语言小练

给定两个数&#xff0c;求这两个数的最大公约数 本算法主要利用辗转相除法求出两个数的最大公约数。 int main(){int m0;int n0;int r0;scanf("%d %d",&m,&n);while(rm%n){mn;nr;} printf("%d\n",n);return 0; } 打印斐波那契数列指定位置的值 …

工作中Git常用命令

Git config --global user.name ‘sn’设置身份名字 Git config--global user.email “ 17909098592qq.com“ 设置邮箱 Git init 创建代码仓库 Ls -al 查看所有目录 Git pull <远程仓库名> <远程分支名>代码更新 Git add file.txt 添加file.txt到git提交器 …

python的requests请求参数带files

踩坑接口请求参数含文件 requests接口请求既有file&#xff0c;也有json。划重点params requests 官网地址 https://requests.readthedocs.io/en/stable/user/quickstart/#post-a-multipart-encoded-file 接口请求既有file&#xff0c;也有json。划重点params import reques…

kali一键部署各种环境和渗透工具

相信各位初入渗透领域的小伙们接触了kali,但是苦于要配置各种环境,安装kali没有的工具,费时费力,博主有时候需要重新部署kali也很苦恼,所以编写一键部署安装kali脚本,下载地址在这里:https://download.csdn.net/download/weixin_59679023/88565320 配置流程: 1、找一…

Linux加强篇002-部署Linux系统

目录 前言 1. shell语言 2. 执行命令的必备知识 3. 常用系统工作命令 4. 系统状态检测命令 5. 查找定位文件命令 6. 文本文件编辑命令 7. 文件目录管理命令 前言 悟已往之不谏&#xff0c;知来者之可追。实迷途其未远&#xff0c;觉今是而昨非。舟遥遥以轻飏&#xff…

Debian12试用报告

环境: win11vbox 虚拟机 网络: host-only访问局域网 nat 访问外网, 配置为dhcp动态获取ip 遇到的问题: 偶尔卡死: nat每次开机都不生效, 外网无法访问; 开机后 重启网络可解决 sudo /etc/init.d/networking restart host-only倒是没问题, 内网正常访问 vim9还是用不习…