【Python机器学习】模型评估与改进——分组交叉验证

news2024/11/18 7:51:08

分组交叉验证是非常常见的一种交叉验证策略,它适用于数据中的分组高度相关时。比如我们想构建一个从人脸图片中识别情感的系统,并且收集了100个人的照片的数据集,其中每个人都进行了多次拍摄,分别展示了不同的情感。我们的目标是构架一个分类器,能够正确识别未包含在数据集中的人的情感。

我们可以使用默认的分层交叉验证来度量分类器的性能。但是这样的话,同一个人的照片可能同时出现在训练集和测试集中。对于分类器而言,检测训练集中出现过的人脸情感比全新的人脸要容易得多。因此,为了准确评估模型对新的人脸的泛化能力,我们必须确保训练集和测试集中包含不同人的图像。

为了实现这一点,我们可以使用GroupKFold,它以groups数组作为参数,可以用来说明照片中对应的是哪个人。这里的groups数组表示数据中的分组,在创建训练集和测试集的时候不应该将其分开,也不应该与类别标签弄混。

数据分组的这种例子常见于医疗应用,你可能拥有来自同一名病人的多个样本,但想要将其泛化到新的病人。同样的,在语音识别领域,你的数据集中可能包含同一名发言人的多条记录,但你希望能够识别到新的发言人的讲话。

下面的例子,用到了一个由groups数组制定分组的模拟数据集。这个数据集包含12个数据点,且对于每个数据点,groups指定了该点所属的分组。一共分成了4个组,前3个样本属于第一组,接下来的4个样本属于第二组,以此类推:

from sklearn.datasets import make_blobs
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GroupKFold

X,y=make_blobs(n_samples=12,random_state=0)
logreg=LogisticRegression()
groups=[0,0,0,1,1,1,1,2,2,3,3,3]

scores=cross_val_score(logreg,X,y=y,groups=groups,cv=GroupKFold(n_splits=3))
print('Cross-validation scores:\n{}'.format(scores))

样本不需要按分组进行排序,我们这么做只是为了便于说明。基于这些标签计算得到的划分如下图:

mglearn.plots.plot_group_kfold()

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

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

相关文章

新开发的应用做ASO服务有必要吗

如果您开发了一款应用并希望在竞争激烈的应用市场中获得更多的曝光和下载,那么ASO服务通常是很有必要的。以下是几个关于ASO服务必要性的主要观点: 1、提高应用的可见性 ASO的最主要目标就是提高应用的排名,使应用在众多应用中脱颖而出让用…

Coze搭建《测测你的本命宠物》

前言 本文讲解如何从零开始,使用扣子平台去搭建《测测你的本命宠物》 《测测你的本命宠物》:测测你的本命宠物 - 扣子 AI Bot (coze.cn) 欢迎大家去体验一下!!! 正文 接下来我们开始讲解制作这个bot的流程吧&#…

Perl语言入门指南

一、绪论 1.1 Perl语言概述 1.2 Perl的特色 1.3 Perl面临的问题 1.4 Perl语言的应用领域 二、Perl语言基础 2.1 Perl语言的历史发展 2.2 Perl语言的基本语法 2.3 Perl语言的数据类型 三、Perl语言控制结构 3.1 条件语句 3.2 循环结构 3.3 函数和子程序 四、Perl语…

Gavin大咖亲自授课:将大语言模型与直接偏好优化对齐

Gavin大咖亲自授课:将大语言模型与直接偏好优化对齐 Align LLMs with Direct Preference Optimization 直接偏好优化( Direct Preference Optimization)这绝对是天才性的算法。你会看到数学的巨大力量和巨大价值,你一定会很兴奋和…

基于X86+FPGA+AI的芯片缺陷检测方案

应用场景 随着半导体技术的发展,对芯片的良率要求越来越高。然而集成电路芯片制造工艺复杂,其制造过程中往往产生很多缺陷,因此缺陷检测是集成电路制造过程中的必备工艺。 客户需求 小体积,低功耗 2 x USB,1 x LAN Core-i平台无…

WhatsApp:连接世界的即时通讯巨头

在数字化浪潮席卷全球的今天,即时通讯工具已成为人们日常生活中不可或缺的一部分。其中,WhatsApp凭借其卓越的功能、出色的用户体验和广泛的用户基础,在全球通讯领域崭露头角,成为连接世界的即时通讯巨头。今天将带您深入了解What…

.NET项目使用Devexpress控件DiagramControl和QuikGraph类库实现最短路径算法可视化

说明: 使用控件:DevExpress V24.1.3(链接:https://pan.baidu.com/s/1FosVrpyE7q_XvwhZK7ad3w?pwdtw64提取码:tw64)项目地址:https://github.com/VinciYan/Diagram_NET.git可以帮助学习和理解数…

【区块链+基础设施】珠三角征信链 | FISCO BCOS应用案例

“珠三角征信链”是中国人民银行广州分行、中国人民银行深圳市中心支行按照中国人民银行总行工作部署,积 极贯彻珠三角一体化发展、粤港澳大湾区建设等国家战略而建设的跨区域征信一体化数据中心枢纽,以 FISCO BCOS 为底链构建应用平台,并由微…

跨越界限,巴比达带你访问远程桌面【内网穿透技术分享】

在远程工作的时代,远程桌面访问成为了许多职场人士的日常。Windows系统默认的远程桌面服务监听在3389端口,但对于内网环境下的机器来说,直接从外部访问这个端口常常面临重重阻碍。不过,有了巴比达内网穿透,这一切都将不…

填志愿选专业,文科男生如何选专业?

又到了高考分数出炉,无数学子收获喜悦的季节,在分数刚出炉时,很多学生表现的异常兴奋,于他们而言,这么多年的努力终于有了收获,自己该考虑选择什么专业了。而毫不夸张的说,很多人在拿到专业目录…

[leetcode]minimum-absolute-difference-in-bst 二叉搜索树的最小绝对差

. - 力扣(LeetCode) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(null…

RANSAC空间圆拟合实现

由初中的几何知识我们可以知道,确定一个三角形至少需要三个不共线的点,因此确定一个三角形的外接圆至少可用三个点。我们不妨假设三个点坐标为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)。 圆方程的标准形式为: (xi-x)2(yi-y)2R2 (1…

[吃瓜教程]南瓜书第4章决策树

1.决策树的算法原理 从逻辑角度,条件判断语句的组合;从几何角度,根据某种准则划分特征空间; 是一种分治的思想,其最终目的是将样本约分约纯,而划分的核心是在条件的选择或者说是**特征空间的划分标准 ** …

Fooocus模型配置中文教程

很多同学这里不知道该怎么选择。不知道每个模型效果,针对这个整理了一个表格。参考表格就可生成预期效果图。 下载地址: https://download.csdn.net/download/yuanshiren133/89503764

【详解】RV1106移植opencv-mobile库

文章目录 前言一、烧入镜像二、编译项目1.创建项目文件 三、移植四、运行文件五、总结 前言 硬件:瑞芯微Rv1106【Luckfox Pro\Max Pico、网线一根、USB线、串口助手、摄像头 软件:ubuntu 20.4 编译器:arm-rockchip830-linux-uclibcgnueabihf…

Cesium大屏-vue3注册全局组件

1.需求 说明:产品经理要求开发人员在地图大屏上面随意放置组件,并且需要通过数据库更改其组件大小,位置等;适用于大屏组件中场站视角、任意位置标题等。 2.实现 2.1GlobalComponents.vue 说明:containerList可以通…

阿里云物联网应用层开发:第三部分,微信小程序和web客户端实现

文章目录 哔哩哔哩视频教程1、阿里云物联网平台对接微信小程序2、阿里云物联网平台对接web客户端2-1MQTT服务器编写2-2 web端Servlet部分编写 哔哩哔哩视频教程 【阿里云物联网综合开发,STM32ESP8266微信小程序web客户端一篇教程详细讲解】 https://www.bilibili.c…

袋鼠快跳 - 常用网址快捷访问

袋鼠快跳 开源地址:https://github.com/chenbimo/kangaroo-jump 袋鼠快跳,是一个以 简单快捷 为目标的网站快导航 油猴脚本。 本工具的理念就是,用最快的速度访问我们最常用的50个网站。 功能特点 完全免费,以 MIT协议 开源。…

文生图功能介绍

Stable Diffusion WebUI(SD WebUI)及文生图功能介绍 一、引言 随着人工智能技术的飞速发展,AI绘画作为一种新兴的艺术形式,逐渐走入人们的视野。Stable Diffusion WebUI(简称SD WebUI)作为AI绘画领域的重…

如何现代的编译和安装内核

前言:本文是在阅读书目时找到了一篇非常高质量的文章。的原文是英文,现在我自己手头翻译了一下,发布到这里。 原文连接:How to compile a Linux kernel in the 21st century | Opensource.com 目录 更新内核的现代方法 安装内…