交叉验证的作用

news/2024/11/24 3:25:21/

1. 可以使用所有的数据

一般模型训练都要把数据分成训练集和验证集合,这就导致训练数据比原始的数据要少,并且验证集也无法是所有的原始数据。
如果使用交叉验证,所有数据都可以用作训练(但不是同一个模型),所有数据也都可以用作验证集。

2. 评估模型的稳定性及调参

比如5折交叉验证,在参数确定了的情况下,我们可以将数据弄成五份,每一份中80%训练,20%作为测试集,这样可以训练五个模型,这五个模型除了训练集测试集不同外,其他的都相同,这样我们可以得到五个模型的评估指标比如auc,计算五个模型得到的auc的方差,如果方差小说明模型的泛化性比较好,模型比较稳定是个好模型,否则说明模型泛化性不好。
xgboost中cv函数返回的值包括两个,一个是单模型的评价指标(比如auc),另外一个是模型的方差。

参数不确定的情况下,我们通过模型的准确性和稳定性来选择最合适的参数。

3. stacking的模型融合方法

stacking模型融合方法中,第二个模型中的特征一般来自第一个模型中对数据的预测,我们不能用自己的训练然后预测自己,这时就要用stacking的方法来分块生成,每次80%的数据训练,用得到的模型预测剩下的20%和test data,重复五次就能得到所有训练集的所有预测结果,从而作为第二个模型的输入。下图比较容易表达这一过程
在这里插入图片描述

4. 处理分组的数据

举个例子,比如语音识别程序,训练集为三个不同的人说的话,如果我们将这三个人说的话融合到一起然后随机采样进行训练和测试,那么结果应该是偏好的。
如果我们用其中两个人声音进行训练第三个人的声音进行测试,那么就能很好的评估模型的泛化性

                                </div><link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet"><div class="more-toolbox"><div class="left-toolbox"><ul class="toolbox-list"><li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-thumbsup"></use></svg><span class="name">点赞</span><span class="count"></span></a></li><li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-Collection-G"></use></svg><span class="name">收藏</span></a></li><li class="tool-item tool-active is-share"><a href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-fenxiang"></use></svg>分享</a></li><!--打赏开始--><!--打赏结束--><li class="tool-item tool-more"><a><svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg></a><ul class="more-box"><li class="item"><a class="article-report">文章举报</a></li></ul></li></ul></div></div><div class="person-messagebox"><div class="left-message"><a href="https://blog.csdn.net/dpengwang"><img src="https://profile.csdnimg.cn/6/4/C/3_dpengwang" class="avatar_pic" username="dpengwang"><img src="https://g.csdnimg.cn/static/user-reg-year/1x/2.png" class="user-years"></a></div><div class="middle-message"><div class="title"><span class="tit"><a href="https://blog.csdn.net/dpengwang" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">很吵请安青争</a></span></div><div class="text"><span>发布了671 篇原创文章</span> · <span>获赞 153</span> · <span>访问量 52万+</span></div></div><div class="right-message"><a href="https://bbs.csdn.net/topics/395532381" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-messageboard">他的留言板</a><a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a></div></div></div>
</article>

http://www.ppmy.cn/news/605414.html

相关文章

LeetCode简单题之统计各位数字之和为偶数的整数个数

题目 给你一个正整数 num &#xff0c;请你统计并返回 小于或等于 num 且各位数字之和为 偶数 的正整数的数目。 正整数的 各位数字之和 是其所有位上的对应数字相加的结果。 示例 1&#xff1a; 输入&#xff1a;num 4 输出&#xff1a;2 解释&#xff1a; 只有 2 和 4 满足…

残差复合正态分布的重要性

如果结果残差不是正态分布 说明用线性回归来拟合数据是不合适的 可能是非线性回归 这里的类是对应因变量的取值 如果是连续型的那就只有一类 销售量 如果是离散型的那就有几类就假设几类 黑白球 当总体只有一类的时候 我们假设符合正态分布 如果有两类假设符合二项分布 论线性…

分享几个免费设计生成及参考工具 (第四期)

今天来给大家分享几个国外免费的设计生成工具 CallToInspiration https://calltoinspiration.com/ 一个为 UX 设计师和开发人员提供灵感的平台&#xff0c;在这里你可以看到很多细节化的设计元素&#xff0c;比如登录界面、个人资料页面、按钮、图标等&#xff0c;让你可以从中…

LeetCode简单题之数组中紧跟 key 之后出现最频繁的数字

题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;同时给你一个整数 key &#xff0c;它在 nums 出现过。 统计 在 nums 数组中紧跟着 key 后面出现的不同整数 target 的出现次数。换言之&#xff0c;target 的出现次数为满足以下条件的 i 的数目&#xff1a; 0 < i…

宿主机虚拟机文件复制 apt-get 换成yum

这两天重新装了VMware 14 Pro和Ubuntu18.04.1。在使用中&#xff0c;发现无法&#xff1a; 从Windows主机向虚拟机的Ubuntu系统中 复制粘贴文字或者拖动文件。 在查看了VMware的文档和其他资料&#xff0c;并尝试了很多方法之后&#xff0c;终于解决了。 现直接贴出我的解决方…

LeetCode中等题之旋转函数

题目 给定一个长度为 n 的整数数组 nums 。 假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组&#xff0c;我们定义 nums 的 旋转函数 F 为&#xff1a; F(k) 0 * arrk[0] 1 * arrk[1] … (n - 1) * arrk[n - 1] 返回 F(0), F(1), …, F(n-1)中的最大值 。 生成的测试用…

pytorch问题索引

20220629 调试代码时候,找不到入口&#xff0c;通过下面的位置进入 20220613 各种归一化在nlp和cv中的输入输出维度 参数只包括权重&#xff0c;不包括偏置 这两个维度的范围不包括&#xff0c;不计算&#xff0c;而是在剩下的维度进行计算 concat&#xff08;dim-1&#x…

LeetCode简单题之计算字符串的数字和

题目 给你一个由若干数字&#xff08;0 - 9&#xff09;组成的字符串 s &#xff0c;和一个整数。 如果 s 的长度大于 k &#xff0c;则可以执行一轮操作。在一轮操作中&#xff0c;需要完成以下工作&#xff1a; 将 s 拆分 成长度为 k 的若干 连续数字组 &#xff0c;使得前 …