sklearn中RepeatedStratifiedKFold和StratifiedKFold的区别

2024-06-22

我尝试阅读文档RepeatedStratifiedKFold https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RepeatedStratifiedKFold.html and StratifiedKFold https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html,但无法区分这两种方法之间的区别,除了RepeatedStratifiedKFold重复StratifiedKFold n times每次重复都有不同的随机化。

我的问题是:这两种方法返回的结果相同吗?我应该使用哪一个来拆分不平衡做时的数据集GridSearchCV选择这种方法的理由是什么?


Both StratifiedKFold https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html and RepeatedStratifiedKFold https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RepeatedStratifiedKFold.html当用于具有严重类别不平衡的分类问题时可以非常有效。他们两个stratify按类标签采样;也就是说,他们以这样的方式分割数据集,即在每个子集/折叠中保留与原始数据集大致相同的类分布(即每个类的样本百分比相同)。然而,单次运行StratifiedKFold可能会导致模型性能的噪声估计,因为数据的不同分割可能会导致非常不同的结果。那就是哪里RepeatedStratifiedKFold发挥作用。

RepeatedStratifiedKFold允许通过简单地重复来提高机器学习模型的估计性能交叉验证 https://scikit-learn.org/stable/modules/cross_validation.html多次执行该程序(根据n_repeats值),并报告mean所有运行的所有折叠的结果。这mean预计结果将是对模型性能的更准确估计(请参阅本文 https://machinelearningmastery.com/repeated-k-fold-cross-validation-with-python/).

因此——回答你的问题——no,这两种方法将not提供相同的结果。使用RepeatedStratifiedKFold意味着每次运行该过程都会导致数据集不同的分层k-折叠,因此,性能结果会有所不同。

RepeatedStratifiedKFold其优点是可以提高估计模型的性能,但代价是拟合和评估更多模型。例如,如果重复 5 次(即n_repeats=5)的 10 倍交叉验证用于估计模型的性能,这意味着需要拟合(训练)和评估 50 个不同的模型,这可能会导致计算成本高昂,具体取决于数据集的大小、机器学习算法的类型、设备规格等。但是,RepeatedStratifiedKFold进程可以在不同的内核或不同的机器上执行,这可以显着加快进程。例如,设置n_jobs=-1将使用系统上所有可用的内核(看看here https://machinelearningmastery.com/multi-core-machine-learning-in-python/).

在评估时,请确保使用适当的指标,如中所述这个答案 https://stackoverflow.com/a/70850584/17865804.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sklearn中RepeatedStratifiedKFold和StratifiedKFold的区别 的相关文章

  • 如何获取 Pandas df.merge() 不匹配的列名称

    给出以下数据 data df pd DataFrame Reference A A A B C C D E Value1 U U U V W W X Y Value2 u u u v w w x y index 1 2 3 4 5 6 7
  • 如何在redis中使用python删除排序集中的项目

    如何使用 python 删除排序集中大于某个值的项目 key foo pipe redis master conn pipeline pipe zadd key 1 a pipe zadd key 2 b pipe zadd key 3 c
  • 在 PyCharm 中启用终端模拟

    很多人告诉过我和PyCharm 2 7 的 PyCharm 发行说明 https www jetbrains com pycharm whatsnew whatsnew 27 html吹捧那个PyCharm包括完整的终端仿真 我认为这是关于
  • 从 java 代码运行 Python 脚本

    这是我第一次在java中尝试python 我正在尝试从我的代码执行 python 脚本 如下所示 Process process Runtime getRuntime exec python C Users username Desktop
  • 为什么Flask后台线程获取错误的数据库信息?

    为了将实时数据库信息推送到客户端 我在服务器端使用flask socketio 通过使用websocket将所有实时数据库信息推送到客户端 我的视图文件有一个片段 from models import Host from flask soc
  • 使用 cx_oracle 返回 MERGE 中受影响的行数

    如何在 CX Oracle 中执行 MERGE INTO sql 命令来获取受影响的行数 当我在cx oracle 上执行MERGE SQL 时 我得到的cursor rowcount 为 1 有没有办法获取受合并影响的行数 由于 cx o
  • 如何在 dash/plotly 中使用 iframe? (Python/HTML)

    我正在创建一个仪表板 我想使用这个交互式地图 网站链接 https www ons gov uk peoplepopulationandcommunity healthandsocialcare causesofdeath articles
  • os.walk 无需深入研究下面的目录

    我该如何限制os walk只返回我提供的目录中的文件 def dir list self dir name whitelist outputList for root dirs files in os walk dir name for f
  • 在 MATLAB 中从头开始编程基本神经网络

    我过去曾在这个网站上问过一些关于神经网络的问题 并得到了很好的答案 但我仍然在努力为自己实现一个 这是一个相当长的问题 但我希望它可以作为其他人在 MATLAB 中创建自己的基本神经网络的指南 所以它应该是值得的 到目前为止我所做的可能是完
  • 将 postgres 连接到 django 时遇到问题

    以下文档来自Django Postgres 文档 https docs djangoproject com en 4 1 ref databases postgresql notes我添加到我的settings py 在我设置的设置中 DA
  • 如何在我的 GUI 上绘图

    我正在设计一个 GUIPyQt当我单击一个按钮来绘制我创建的函数的数据图时 我需要显示一个 matplotlib pylab 窗口 它就像 Matlab 中使用的运行时 每次按下该按钮时 我都想将 matplotlib pylab 窗口保留
  • dask分布式内存错误

    在分布式作业上运行 Dask 时 我在调度程序上遇到以下错误 distributed core ERROR Traceback most recent call last File usr local lib python3 4 dist
  • Python父类访问子私有变量

    以下代码会生成错误 class A object def say something self print self foo print self bar class B A def init self self foo hello sel
  • 基于 Pandas 中特殊字符分隔列中的每个项目进行聚合

    我输入的数据如下 Date Investment Type Medium 1 1 2000 Mutual Fund Stocks Fixed Deposit Real Estate Own Online Through Agent 1 2
  • 构建wheel失败/“错误:INCLUDE环境变量为空”

    我正在使用 Python 2 7 11 并尝试 pip install 模块 但是其中一些模块失败了 我收到的消息是 无法为 X 构建轮子 和 错误 包含环境变量为空 我尝试安装 Scrapy LXML 和 Twisted 但都失败了 我尝
  • 从Python列表中挑选出具有特定索引的项目

    我确信在 Python 中有一种很好的方法可以做到这一点 但我对这门语言还很陌生 所以如果这是一个简单的方法 请原谅我 我有一个列表 我想从该列表中挑选某些值 我想要挑选的值是列表中索引在另一个列表中指定的值 例如 indexes 2 4
  • 如何隐藏 Tkinter python Gui

    有人知道如何隐藏 python GUI Tkinter 我已经创建了键盘记录器 对于 GUI 我使用了 python 模块 Tkinter 我想添加名为 HIDE 的按钮 因此当用户单击它时 它将隐藏 GUI 当用户按下 CTRL E 之类
  • 如何使用 opencv python 根据检测到的物体的位置生成其热图

    我需要根据对象的位置生成其热图 示例 视频帧中检测到的绿色球 如果它长时间停留在某个位置 那么该位置应该是红色的 并且球在短时间内经过的帧中的位置必须是蓝色的 这样我就需要生成热图 提前致谢 那么你在这里可以做的是 1 首先定义一个热图作为
  • Python pandas:向我的数据框中添加一列来计算变量

    我有一个像这样的数据框 gt org group org1 1 org2 1 org3 2 org4 3 org5 3 org6 3 我想将列 count 添加到 gt 数据帧以计算组的成员数量 预期结果如下 org group count
  • Maya python 连接选择的属性

    我一直在尝试制作一个简单的脚本 它将采用两个视口选择 然后基本上将第二个视口的旋转连接到第一个 我不确定如何正确地从视口选择中为对象创建变量 这是我的尝试 但不起作用 import maya cmds as cmds sel cmds ls

随机推荐

  • 将 yyyy-mm-dd 转换为 dd mm yyyy

    如何将 2013 06 24 转换为 2013 年 6 月 24 日 我正在使用下面的代码 date1 2013 06 24 SimpleDateFormat d new SimpleDateFormat dd MMM yyyy try d
  • Cordova 不创建 AndroidManifest.xml

    我正在 Cordova 和 AndroidStudio 中创建 Android iOS 应用程序 一切都工作正常 直到我昨天将 Cordova 更新到 8 我还将 Node 更新到了最新版本 当我创建 Cordova 项目并添加 Andro
  • 如何使用 Java 10、Ant 和 Eclipse 编译器编译此代码?

    我正在尝试使用 Java 10 Ant 和 Eclipse 编译器编译这个简单的代码 import java util ArrayList import javax xml bind JAXBException class Test voi
  • 伊2。动态添加属性和规则到模型

    我正在编写一个小部件 我想避免用户向他们的模型添加代码 我知道这会更容易 但用它来学习新东西 您是否知道是否可以向模型添加一个属性 该属性不在您的数据库中 因此它将是虚拟的 并为该属性添加规则 您无权更改该模型代码 我知道规则是一个数组 过
  • Clojure:如何生成“trie”?

    鉴于以下 def inTree 1 2 1 2 3 1 2 4 5 9 1 2 4 10 15 1 2 4 20 25 你如何将它转换成这个特里树 def outTrie 1 2 3 4 5 9 10 15 20 25 这是一个清理后的解决
  • JaCoCo 和 MR 罐子

    JaCoCo 有一个问题 并且多版本 JAR 文件 http openjdk java net jeps 238 由于两个地方存在相同的类名 JaCoCo 抱怨道 Caused by java lang IllegalStateExcept
  • 每次 iPhone App 重新启动时 NSHomeDirectory 返回不同的路径

    我注意到每次我用 Xcode 重新启动应用程序时 NSHomeDirectory 都会返回不同的路径 显然即使我手动单击图标 因为它不会加载文件的内容 我很惊讶每次重新启动应用程序时它都会给我一个不同的目录 即使我使用 ForUser 方法
  • 为什么我的页面可以在 IE9 的 IE7 模式下工作,但不能在 IE7 本身下工作?

    在对 IE9 的每种浏览器和文档模式进行了大量测试之后 我最近启用了我们的新主页 not只是兼容模式 但实际的 IE7 和 IE8 仿真 该网站可以在每种模式下运行 更不用说现代浏览器了 然而 在它推出后 我收到一封电子邮件 说该网站在 I
  • 从书签加载外部 JS?

    如何使用书签加载外部 JavaScript 文件 这将克服 IE 的 URL 长度限制 并且通常会保持简洁 2015年更新 内容安全政策 https developer mozilla org en US docs Web Security
  • 模板模板部分特化仅与 -std=c++1z 和 g++ 一起使用

    我发现下面这段代码 include
  • 更新通用列表中元素的最佳方法[重复]

    这个问题在这里已经有答案了 假设我们有一个名为 Dog 的类 它有两个字符串 Name 和 Id 现在假设我们有一个包含 4 只狗的列表 如果您想更改 Id 为 2 的狗的名称 最好的方法是什么 Dog d1 new Dog Fluffy
  • 如何解决出现 python 扩展加载和扩展激活失败消息的问题?

    打开 VS code 时 我不断在屏幕右下角收到这些消息 关于如何摆脱它有什么想法吗 我仍然可以编写代码并运行代码 但我不明白为什么会发生这种情况 我尝试删除 python 扩展以及视频扩展选项卡中与 python 相关的任何内容 但没有成
  • 使用反射设置嵌套属性值

    我已经进行了彻底搜索 但找不到我的问题的确切答案 以下面的代码为例 public class Company private string m strName private Customer m objCustomer public Co
  • 一个解决方案中有多少个项目算太多?

    单个解决方案中有多少个项目是可以接受的 对于那些项目数量较大的应用程序 您是否将其他已编译的 dll 放在某个公共文件夹中以便能够运行该应用程序 由于在 Visual Studio 中项目会编译为程序集 因此您应该问自己的问题是 我应该有多
  • 仅使用 FPC 的 GUI

    我想知道如何在不使用Delphi语言 Object Pascsl 的情况下 仅使用安装了Lazarus的FPC Pascal 来开发GUI应用程序 32位 谢谢 直接使用小部件集 看看例如unix 的 packages gtk2 中的示例
  • CMake:编译 OpenCV 时未找到 CUDA 库

    我正在 Windows 上使用 CMAKE 编译支持 CUDA 的 OpenCV 3 0 0 当我点击 配置 时 出现如下错误 CMake Error The following variables are used in this pro
  • .NET 的多线程库

    我在一些程序中使用了多线程 但仍然感觉不太舒服 有哪些适用于 C NET 的多线程库 其中一个库相对于另一个库有哪些优势 我所说的多线程库是指所有有助于使多线程编程变得更容易的东西 您定期使用什么 NET 集成 例如 ThreadPool
  • Python 对象生命周期特征

    注意 如果您知道任何 非详细的 库代码可以实现我想要的功能 请启发 C C 程序员 我会接受它作为答案 我有一个全局变量设置为以下类的实例 它的目的是允许我设置一些手动中断点来放置一些快速和肮脏的东西printfscrapy 蜘蛛中的样式调
  • PowerShell 多个命令行的更改范围 - UICulture

    在我修改与问题目标相关的 PS 5 1 期间完全更改当前 PowerShell 会话的语言 https stackoverflow com questions 62872708 fully change language for the c
  • sklearn中RepeatedStratifiedKFold和StratifiedKFold的区别

    我尝试阅读文档RepeatedStratifiedKFold https scikit learn org stable modules generated sklearn model selection RepeatedStratifie