【技术分享】什么是K折交叉验证?

简介: 【技术分享】什么是K折交叉验证?

1.什么是训练集、验证集和测试集?

训练集,即:训练的集合,是用来训练模型的数据集合。通过这部分数据,学习得到一个模型。训练集可以当做高中刷题的题库,训练的过程可以比作高中生学习的过程。


测试集,即:测试的集合,是用来检验或者说验证模型的数据集合。通过这部分数据,可以验证学习的好坏。测试集可以当做高考的试题,测试的过程可以比作参加高考。


理解上述两个概念以后,那学习的过程我们就可以捋清楚了:

通过学习(理解成“训练”的过程),让自己变得更好(把自己当成“模型”)。通过3年的学习(训练了3年),参加高考(理解成“测试”的过程),检验自己学得好不好。


注意注意!此时此刻我其实隐含了一个假设条件,就是你参加完高考以后不能凭借着考场的回忆再去刷题,就是高考完以后你脑子就回到了高一入学的状态重新学习3年参加高考,高考如果不理想脑子又回到了高一入学的状态重新学习3年参加高考……在机器学习中,也就是说:“训练集”不能用于训练更新模型。当测试效果发现不行时,从头开始训练,不能含有一点记忆。


那么问题来了:我花了3年时间去训练,高考完了发现没学好、高考分数很低怎么办?时间都白白浪费了,但还没有学好。有的人可能说,那就再来3年呗。好,那咱们就再来3年,再来3年就一定会好吗?是不一定的,再来3年,再来10个3年也不是一定可以学好的。那训练不好就重新训练,那什么时候是个头呀?


所以,此时又有人想出了一个办法,我们每半年参加1次模拟考试,检验一下学习效果,及时调整学习策略。这,就是验证集(模拟考试的题库)


验证集,就是用来检验模型数据的集合。


此时可以适当总结下:验证集≠测试集(模拟成绩≠高考成绩,模拟成绩好可能高考大概率会好,但不代表高考成绩一定好)


2.什么是K折交叉验证?

K折交叉验证,是一种动态的验证方式。以 K 取10为例,将数据集(此数据集非机器学习中的数据集,而是指一种数据的集合,只是为了解释分组问题的一个概念)划分成10份,将每份数据分别标记为1号、2号、3号、4号、5号、6号、7号、8号、9号、10号。每次训练用1份作为验证集,其余9份作为验证集,如下表所示。

1号 2号 3号 4号 5号 6号 7号 8号 9号 10号
第1次 训练 训练 训练 训练 训练 训练 训练 训练 训练 验证
第2次 训练 训练 训练 训练 训练 训练 训练 训练 验证 训练
第3次 训练 训练 训练 训练 训练 训练 训练 验证 训练 训练
第4次 训练 训练 训练 训练 训练 训练 验证 训练 训练 训练
第5次 训练 训练 训练 训练 训练 验证 训练 训练 训练 训练
第6次 训练 训练 训练 训练 验证 训练 训练 训练 训练 训练
第7次 训练 训练 训练 验证 训练 训练 训练 训练 训练 训练
第8次 训练 训练 验证 训练 训练 训练 训练 训练 训练 训练
第9次 训练 验证 训练 训练 训练 训练 训练 训练 训练 训练
第10次 验证 训练 训练 训练 训练 训练 训练 训练 训练 训练

问1: 那为什么要用验证集?

答1: 用来调整超参数的。


问2: 比如分类问题中用到了激活函数,但不知道使用relu还是tanh函数的准确率更高,该怎么办?

答2: 那就用relu函数来训练10次得到10份验证集上的准确率,将10份准确率取个均值作为relu函数的代表。再用tanh函数来训练10次得到10份验证集上的准确率,将10份准确率取个均值作为tanh函数的代表。将这两个准确率进行比较,哪个准确率高,就说明哪个激活函数更好。

当确定好某个函数的准确率好时,就是用该激活函数,再将全部数据作为训练集训练,然后在测试集上进行测试即可。


这么做的优点是:


使用了验证集,可以检验学习的好坏。

每份数据都当过验证集、也都当过训练集,不会存在因数据问题带来模型偏差。

充分训练了模型(毕竟每份数据被用来训练了9次),当数据量小时起到了“扩充”训练数据的作用。

可以挑选出最佳的超参数。

3.数据集划分过程

将数据集分为训练集和测试集,将测试集放在一边先不管。

已知目前有 N 组超参数组合(将从 N 组中挑选出最好的1组)。

对每个超参数组而言,将训练集分为 K 份。每次使用 K 份中的 1 份作为验证集,其他 K-1 份作为训练集。通过 K 次训练后,我们得到了 K 个不同的评价指标。将 K 个评价指标取均值作为该超参数组的代表。

循环 N 次,获得 N 个超参数组对应的评价指标的均值,取其中最好的一个超参数组。

使用最优的超参数,然后将 K 份数据全部作为训练集重新训练模型,得到最终模型,然后直接在测试集上测试即可。

3.应用场景及注意事项

3.1.应用场景

数据量较小时,会使用 K 折交叉验证。K 折交叉验证可以起到“扩充”数据的作用。

超参数多,不知道该选哪个合适,会用到K折交叉验证。

3.2.注意事项

K 折交叉验证,不是 K 折交叉测试(这在好多文章中都搞混了),测试集是不能用来更新模型和调整超参数的。我们将数据分成K份的目的是来验证数据的,不是来测试数据的。验证≠测试。

可以将 K 折交叉验证,概括为 N 次 K 折交叉验证。N 是指超参数组的数量,需要从 N 个超参数组中选出最好的一个来;K 是指交叉验证划分的数量,一般取5或者10。


目录
相关文章
|
消息中间件 人工智能 弹性计算
函数计算 FC 3.0 发布,全面降价,最高幅度达93%,阶梯计费越用越便宜
函数计算 FC 3.0 发布,全面降价,最高幅度达93%,阶梯计费越用越便宜
16364 142
|
3月前
|
弹性计算 并行计算 数据库
阿里云服务器多少钱一年?整理2024年最新爆款服务器配置排行榜,共7台!
阿里云2024年服务器最新价格出炉,涵盖ECS云服务器与轻量应用服务器多款配置,如2核2G 79元/年起、2核4G配置199元一年、4核8G 955元/年等,满足不同需求。详情及购买链接见正文。
169 1
|
6月前
|
存储 弹性计算 固态存储
个人或学生群体,就选阿里云99元服务器,性价比之王!
阿里云99元服务器,性价比优选!适合个人与学生群体。配置为ECS经济型e实例,2核2G内存,3M固定带宽,40G ESSD Entry系统盘。新老用户皆可购买并享受99元/年的续费价格。CPU采用Intel Xeon Platinum处理器。3M带宽提供稳定上网体验,适合轻量级应用。ESSD Entry云盘满足基本存储需求。
|
6月前
|
弹性计算 固态存储 开发者
阿里云99元服务器,性价比之王!新老用户都值得拥有!
阿里云99元服务器ECS经济型e实例,2核2G配置,3M固定带宽,40G ESSD Entry系统盘,适合个人开发者、学生和小微企业用于中小型网站建设和轻量级应用。CPU基于Intel Xeon Platinum架构,网络带宽支持最高2Gbps突发,云盘提供0.8万IOPS。3M带宽下载速度达384KB/s,上传速度1280KB/s,不限流量。续费仍为99元/年
175 0
|
6月前
|
弹性计算 固态存储 大数据
2024年购买阿里云服务器多少钱一年?吐血整理,价格真优惠呀!
阿里云服务器2024年最新租用价格: 轻量应用服务器2核2G3M带宽一年82元, 折合6.8元/月; 2核4G4M带宽一年298元。新老用户共享99元/年的2核2G3M带宽ECS服务器, 2核4G5M带宽ECS优惠价199元/年。4核16G10M带宽服务器70元/月、210元/3个月; 8核32G10M带宽服务器160元/月、480元/3个月。GPU服务器如gn6v最高配置336G内存, 8核32G一个月4685.20元, 一年46097.40元。按小时计费的云服务器ECS如2核8G通用型每小时0.45元, 4核8G通用型每小时0.702元。
157 0
|
8月前
|
人工智能
通义千问大模型价格直线下调,优惠升级!更有新用户限时免费领取3600万额度!
通义大模型全线9款直降,最高达97%,阿里云MaaS(模型即服务)让推理成本大幅降低,加速AI应用爆发。 即刻登录阿里云百炼官网https://bailian.aliyun.com调用体验,新用户免费限时赠送3600万tokens!
|
8月前
|
存储 弹性计算 云计算
阿里云百款产品直降,平均降幅20%:2024年阿里云降价后服务器配置报价参考
阿里云启动百款产品降价行动,平均降幅高达20%,旨在推动云计算普及。近日,阿里云宣布,旗下百款公共云服务产品将进行大规模降价,平均降幅达到20%。这一行动旨在降低企业和开发者的使用门槛,推动云计算在中国各行各业的普及和发展。据了解,此次降价行动涵盖了计算、存储、网络、数据库、安全、人工智能等多个领域的公共云服务产品。阿里云表示,此次降价是基于技术创新和成本优化实现的,旨在让更多的企业和开发者能够享受到先进、高效、稳定的云服务。阿里云此次降价行动的背景,反映了云计算在中国市场的快速发展和竞争加剧。随着数字化转型的深入推进,越来越多的企业开始认识到云计算的价值,并积极寻求优质的云服务提供商。阿里云
144 0
|
8月前
|
弹性计算 NoSQL 关系型数据库
阿里云真降价,直降价:百款产品直降,平均降幅20%
阿里云真降价,直降价:百款产品直降,平均降幅20%,2024年最新阿里云降价,立即生效!百款产品直降,平均降幅20%,阿里云希望通过此次大规模降价,让更多企业和开发者用上先进的公共云服务,加速云计算在中国各行各业的普及和发展。这次降价包括云服务器ECS、对象存储OSS、云数据库都降价了,真降价,直降价:百款产品直降,平均降幅20%,阿里云百科分享阿里云2024年降价信息汇总表
196 0
|
8月前
|
弹性计算 关系型数据库 数据库
阿里云史上最大力度降价:2024年阿里云服务器降价后租用费用明细报价表整理
2024年阿里云年度首次官方降价,百款产品直降,平均降幅20%,最高降幅55%,阿里云希望通过此次大规模降价,让更多企业和开发者用上先进的公共云服务,加速云计算在中国各行各业的普及和发展。阿里云将下调部署在中国大陆地域的部分公共云产品(行业云不在本次价格调整范围内):包括云服务器ECS、云数据库RDS(MySQL、PostgreSQL、MariaDB)、云数据库Redis社区版、云数据库MongoDB、云数据库ClickHouse社区兼容版的特定规格包年/多年官网折扣价、节省计划(云服务器大陆地域ECS计算型节省计划、RDS MySQL全地域节省计划),以及对象存储服务 OSS 按量付费、预留
359 0
|
8月前
|
弹性计算 大数据 测试技术
2024年3月阿里服务器价格及全新优惠活动整理汇总
2024年3月阿里服务器价格在哪里查看?阿里云服务器分为轻量应用服务器和云服务器ECS,轻量适合个人开发者使用,搭建轻量级的网站、测试环境使用,专业级如大数据、科学计算、高并发网站等需要使用云服务器ECS,以下是分享阿里云服务器租用费用。