【大厂AI课学习笔记NO.60】(13)模型泛化性的评价

news2024/9/24 3:30:01

我们学习了过拟合和欠拟合,具体见我的文章:https://giszz.blog.csdn.net/article/details/136440338

那么今天,我们来学习模型泛化性的评价。

泛化性的问题,我们也讨论过了,那么如何评价模型的泛化性呢?

 

我们知道,过拟合(over-fitting),就是在训练数据上表现良好,在未知数据上表现差。

欠拟合(under-fitting),就是在训练数据和未知数据上表现都很差。

这里要记住!

过和欠都不好,训练结合略微低于测试结果是组好的。 

 

这个图特别有助于我们的理解。

延伸学习:


模型泛化性的评价方法主要包括留出验证、交叉验证、自助法等,下面详细阐述留出验证和交叉验证这两种常用的方法,以及它们的步骤和重要的工具,并给出具体的例子来说明。

一、留出验证

留出验证是将数据集划分为训练集、验证集和测试集三个部分。训练集用于训练模型,验证集用于调整模型参数和选择最佳模型,测试集用于评估模型的泛化性能。

步骤:

  1. 将数据集按比例划分为训练集、验证集和测试集,通常的比例是70%:15%:15%或60%:20%:20%等。
  2. 使用训练集训练模型,并使用验证集进行模型选择和参数调整。
  3. 选择在验证集上表现最好的模型,使用测试集评估其泛化性能。

工具:

Python中的scikit-learn库提供了留出验证的相关功能,如train_test_split函数可用于划分数据集。

例子:

假设我们有一个包含1000个样本的数据集,我们可以使用train_test_split函数将其划分为训练集、验证集和测试集。例如,将70%的数据作为训练集,剩余的30%再平均分为验证集和测试集。

from sklearn.model_selection import train_test_split  
  
X, y = # 数据集的特征和标签  
  
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.3, random_state=42)  
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)

二、交叉验证

交叉验证是一种将数据集分成多份,每次使用其中的一份作为验证集,其余的作为训练集的验证方法。常见的交叉验证方法有k折交叉验证和留一交叉验证。

步骤(以k折交叉验证为例):

  1. 将数据集平均分成k份,每份称为一个折(fold)。
  2. 每次使用其中的一个折作为验证集,其余的k-1个折作为训练集。
  3. 重复k次,每次选择不同的折作为验证集,确保每个折都被用作验证集一次。
  4. 计算k次验证结果的平均值作为模型的性能评估指标。

工具:

Python中的scikit-learn库提供了交叉验证的相关功能,如KFoldcross_val_score等。

例子:

假设我们有一个包含100个样本的数据集,我们可以使用5折交叉验证来评估模型的性能。这意味着我们将数据集分成5份,每份包含20个样本。

from sklearn.model_selection import KFold, cross_val_score  
from sklearn.linear_model import LogisticRegression  
  
X, y = # 数据集的特征和标签  
model = LogisticRegression()  # 以逻辑回归模型为例  
  
kfold = KFold(n_splits=5, shuffle=True, random_state=42)  # 创建5折交叉验证对象  
scores = cross_val_score(model, X, y, cv=kfold)  # 使用交叉验证评估模型性能  
  
print("交叉验证结果:", scores)  # 输出每次验证的结果  
print("平均性能:", scores.mean())  # 输出平均性能评估指标

需要注意的是,在实际应用中,我们通常会结合多种评估方法和工具来全面评估模型的泛化性能。此外,还需要注意数据集的划分比例、随机性等因素对评估结果的影响。

 

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

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

相关文章

论文精读--GPT3

不像GPT2一样追求zero-shot,而换成了few-shot Abstract Recent work has demonstrated substantial gains on many NLP tasks and benchmarks by pre-training on a large corpus of text followed by fine-tuning on a specific task. While typically task-agnos…

二十四、剖析 ArrayDeque

文章目录 剖析 ArrayDeque3.1 循环数组3.2 构造方法3.3 从尾部添加 addLast(E)3.4 从头部添加 addFirst(E)3.5 从头部和尾部删除3.6 查看长度 size()3.7 检查给定元素是否存在3.8 toArray3.9 ArrayDeque 特点分析 剖析 ArrayDeque 本文为书籍《Java编程的逻辑》1和《剑指Java&…

Unity UGUI之Slider基本了解

在Unity中,Slider(滑动条)是一种常用的用户界面控件之一,允许用户通过拖动滑块来选择一个数值。常常应用于调节数值(如调节音量、亮度、游戏难度等)、设置选项等。 以下是Slider的基本信息和用法: 1、创建…

Neoverse CSS N3:实现市场领先能效的最快途径

区分老的架构 从云到边缘,Arm Neoverse 提供无与伦比的性能、效率、设计灵活性和 TCO 优势,正在颠覆传统基础设施芯片。 我们看到云和超大规模服务运营商正在推动更高的计算密度。随着 128 核心 CPU 设计上市(Microsoft Cobalt、阿里巴巴 Y…

工作微信统一管理(还带监管功能)

1.会话页面(可统一管理多个微信号、聚合聊天、手动搜索添加好友、通过验证请求、查看好友的朋友圈等) 2.聊天历史(可查看 所有聊天记录,包括手机.上撤回、删除的消息) 3.群发助手(可以一 -次群发多个好友和群,还可以选择定时发送,目前还在内测…

postman传参与返回值切换为左右显示的操作

目录 第一步 点击“Settings”,在下拉框选择“Settings” 第二步 在默认打开的General页面,参照下图改动两处 第一步 点击“Settings”,在下拉框选择“Settings” 第二步 在默认打开的General页面,参照下图改动两处 附上修改后…

Mysql深入学习 基础篇 Ss.02 详解四类SQL语句

我亲爱的对手,亦敌亦友,但我同样希望你能成功,与我一起,站在人生的山顶上 ——24.3.1 一、DDL 数据定义语言 1.DDL —— 数据库操作 查询 查询所有数据库 show databases; 查询当前数据库 select database(); 创建 create databa…

Linux:kubernetes(k8s)部署CNI网络插件(4)

在上一章进行了node加入master Linux:kubernetes(k8s)node节点加入master主节点(3)-CSDN博客https://blog.csdn.net/w14768855/article/details/136420447?spm1001.2014.3001.5501 但是他们显示还是没准备好 看一下…

linux安全--DNS欺骗,钓鱼网站搭建

目录 一,实验准备 首先让client能上网 1)实现全网互通,实现全网互通过程请看 2)SNAT源地址转换 3)部署DHCP服务 4)配置DHCP服务 5)启动服务 6)安装DNS服务 7)DNS配置 8)启动DNS…

数据结构c版(3)——排序算法

本章我们来学习一下数据结构的排序算法! 目录 1.排序的概念及其运用 1.1排序的概念 1.2 常见的排序算法 2.常见排序算法的实现 2.1 插入排序 2.1.1基本思想: 2.1.2直接插入排序: 2.1.3 希尔排序( 缩小增量排序 ) 2.2 选择排序 2.2…

Java两周半速成之路(第九天)

一.Object类 1.概述: Object类:是java中所有的类共同的父类 1、观察包所属后发现,Object类属于java.lang包下的类,今后使用的时候,不需要进行导包 2.构造方法 Object() 无参构造方法 3.Object类的成员方法 (1)…

C语言数组作为函数参数

有两种情形; 一种是数组元素作为函数实参;一种是数组名作为函数参数; 新建一个VC6单文档工程; void printshz(int , CDC* , int , int ); double getav(int a[5]); ...... void CShzcshView::OnDraw(CDC* pDC) {CShzcshDoc* pDo…

pycharm 自定义TODO类注释以及其高亮颜色

大体介绍 使用自定义TODO是为了方便看,并且快速定位到位置 上面是为了进行标记,下面是让哪些标记可以过滤掉(自定义过滤规则),从而在pycharm下面的TODO可以显示并过滤 如何设置? Setting-Preferences-Ed…

华为配置攻击检测功能示例

配置攻击检测功能示例 组网图形 图1 配置攻击检测功能示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户通过WLAN接入网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响用户的业务使用。…

AutoSar PWM配置详解

背景 芯片:AURIX TC3xx 软件:Vector DaVinci CFG(简称达芬奇) 目标:配置AURIX TC3xx的P34.4脚为30HZ的PWM输出 配置过程 1.AUTOSAR架构 下图显示了PWM在AUTOSAR架构中的位置,在MCAL区。 2.Port模块配置 主要配置Port的输出模式与输出类型。 查看手册 配置P…

2024.3.1 网络编程

1.思维导图 2.TCP机械臂测试 程序代码&#xff1a; #include <myhead.h> #define SER_IP "192.168.125.254" //服务器端IP #define SER_PORT 8888 //服务器端端口号#define CLI_IP "192.168.199.131" //客户端IP …

一二三文档管理系统整体介绍

系统简介 企事业单位一站式文档管理系统&#xff0c;让组织内文档管理有序&#xff0c;协作高效、安全可控。 本应用完全开源&#xff0c;开源协议为MIT。 本应用基于一二三应用开发平台构建&#xff0c;该平台完全开源&#xff0c;开源协议为MIT&#xff0c;传送门。 系统特…

VMware 虚拟机安装windows 10操作系统

先提前准备好镜像文件 1.创建新的虚拟机 2.选择自定义&#xff0c;然后下一步 v Windows 建议选择2G以上&#xff0c;下一步 选择网络地址转换&#xff08;NAT&#xff09;&#xff0c;下一步 这里可按自己的需求来分区&#xff0c;也可以安装好后再分区 选择立即重启&#xff…

【心理】程序人生之情绪与压力篇,附心理学相关证书备考指南(心理学312统考,心理治疗师,中科院心理咨询师,家庭教育指导师,企业培训证书)

程序员生活指南&#xff08;情绪与压力篇&#xff09;之 【心理】程序人生之情绪与压力专项&#xff0c;附心理学相关证书备考指南&#xff08;心理学312统考&#xff0c;心理治疗师&#xff0c;中科院心理咨询师&#xff0c;家庭教育指导师&#xff0c;企业培训证书&#xff0…