如何为 scikit-learn 提供随机数生成器的种子?

2023-12-01

我正在尝试为一些使用 scikit-learn 的代码编写单元测试。然而,我的单元测试似乎是不确定的。

AFAIK,我的代码中 scikit-learn 使用随机性的唯一地方是它的LogisticRegression模型及其train_test_split,所以我有以下内容:

RANDOM_SEED = 5
self.lr = LogisticRegression(random_state=RANDOM_SEED)
X_train, X_test, y_train, test_labels = train_test_split(docs, labels, test_size=TEST_SET_PROPORTION, random_state=RANDOM_SEED)

但这似乎不起作用——即使我通过了一个固定的docs和一个固定的labels,固定验证集上的预测概率因运行而异。

我也尝试添加numpy.random.seed(RANDOM_SEED)在我的代码顶部调用,但这似乎也不起作用。

我有什么遗漏的吗?有没有办法在一个地方将种子传递给 scikit-learn,以便在 scikit-learn 的所有调用中使用该种子?


from sklearn import datasets, linear_model
iris = datasets.load_iris()
(X, y) = iris.data, iris.target
RANDOM_SEED = 5
lr = linear_model.LogisticRegression(random_state=RANDOM_SEED)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=RANDOM_SEED)
lr.fit(X_train, y_train)
lr.score(X_test, y_test)

产生的0.93333333333333335现在好几次了。你的做法看起来没问题。另一种方法是set np.random.seed() or use Sacred用于记录随机性。使用random_state是什么文档描述了:

如果您的代码依赖于随机数生成器,则它永远不应该使用类似的函数numpy.random.random or numpy.random.normal。这种方法可能会导致单元测试中的重复性问题。相反,一个numpy.random.RandomState应该使用对象,它是从random_state传递给类或函数的参数。

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

如何为 scikit-learn 提供随机数生成器的种子? 的相关文章

  • 在 Python 中使用 Selenium 处理“接受 Cookie”弹出窗口

    我一直在尝试用硒抓取这个房地产网站的一些信息 但是 当我访问该网站时 我需要接受 cookie 才能继续 这仅在机器人访问网站时发生 而不是在我手动执行时发生 当我尝试通过 xpath 或 id 查找相应的元素时 正如我在手动检查页面时找到
  • 从正在运行的 python 脚本检测优化标志是否为 -O 或 -OO

    有时我想生成一个子进程 其优化标志与启动父进程时使用的优 化标志相同 我可以使用类似的东西 optimize not debug 但这样我就可以匹配两者 O and OO flags 是否有一些 python 内部状态包含该信息 经过一番深
  • Tensorflow 可变图像输入大小(自动编码器、放大......)

    Edit WARNING不建议使用不同图像大小的图像 因为张量需要具有相同的大小才能实现并行化 我一直在寻找解决方案 了解如何使用不同大小的图像作为神经网络的输入 Numpy 第一个想法是使用numpy 然而 由于每个图像的大小不同 我无法
  • 如何从 PyCharm 项目中获取我的“exe”[重复]

    这个问题在这里已经有答案了 通过 PyCharm 在 Python 上编写一些项目 我想从中获取一个exe文件 我尝试过 另存为 gt XXX exe 但是 当我尝试执行它时出现错误 此类操作系统不支持该文件 附注 我有win7 x64 它
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 错误:permission_manager_qt.cpp(82) 不支持的权限类型:13

    我正在开发具有内置浏览器功能的 python 代码 PyQt 5 13 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets imp
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 创建一个类似于 Tkinter 的表

    我希望创建类似于 Tkinter 中的表格的东西 但它不一定是这样的 例如 我想创建标题 Name1 Name2 Value 并在每个标题下面有几个空白行 然后 我希望稍后用我计算的值或名称的字符串值填充这些行 因此是标签 对于 Name2
  • spacy 如何使用词嵌入进行命名实体识别 (NER)?

    我正在尝试使用以下方法训练 NER 模型spaCy识别位置 人 名和组织 我试图理解如何spaCy识别文本中的实体 但我无法找到答案 从这个问题 https github com explosion spaCy issues 491在 Gi
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 为什么实现 __iter__ 的对象不被识别为可迭代的?

    假设您使用包装对象 class IterOrNotIter def init self self f open tmp toto txt def getattr self item try return self getattribute
  • Scipy 稀疏 Cumsum

    假设我有一个scipy sparse csr matrix代表下面的值 0 0 1 2 0 3 0 4 1 0 0 2 0 3 4 0 我想就地计算非零值的累积和 这会将数组更改为 0 0 1 3 0 6 0 10 1 0 0 3 0 6
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • TypeError:无法使用抽象方法实例化抽象类 <...>

    这是我的代码 from abc import ABC from abc import abstractmethod class Mamifiero ABC docstring for Mamifiero def init self self
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如
  • 使用 Python 生成类似于 Messenger 或 kik 代码的圆形二维码

    我可以使用 Python 生成圆形 QR 码 就像 Facebook Messenger 或 kik 使用的那样吗 我访问了很多网站 但找不到这种类型的二维码 默认情况下 Python 生成方形 QR 码 但在我的项目中我想要圆形 QR 码
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • C# 只读字段是否允许在类外部修改?

    我有一个readonly我通过构造函数参数设置的对象字段 如果我修改对象 类内的字段也会改变 我猜这是通过引用调用 有什么办法可以更好地做到这一点 防止它吗 private void Form1 Load object sender Eve
  • 打开关闭 GPS android [重复]

    这个问题在这里已经有答案了 可能的重复 如何以编程方式在 Android Cupcake 中启用 GPS 我目前正在 Android 中编写一个与 GPS 配合使用的应用程序 目前我可以确定 GPS 是否启用 我的问题是 如果禁用了 GPS
  • 减少 iTextSharp 上的段落换行高度

    当段落长度对于 ColumnText 的宽度来说太长时 如何减少换行符的高度 我尝试了以下方法 因为我看到了其他问题的答案 p Leading 0 但这并没有产生任何影响 我也尝试过增加Leading to 100看看是否添加了更大的换行符
  • 事件委托,Event.target 与 Event.currentTarget

    In MDN Event target 参考有一个关于实现事件委托的示例 事件委托示例 Assuming there is a list variable containing an instance of an HTML ul eleme
  • 使用提升日期的工作日持续时间

    有没有办法只得到没有 2 个提升日期之间的工作日 在下文中 我只获取日历日 date begin dt 2011 Aug 3 date end dt day clock local day days duration end dt begi
  • Asp.NET MVC 3 项目模板未显示

    我安装了 Async CTP 但不知道它会导致 Asp NET MVC 3 出现问题 因此 我按照所有可能的卸载说明重新安装了 SP1 和 MVC 3 但是 MVC 3 模板不会显示在新项目对话框中 我已确保对话框中的目标平台是 NET 4
  • 使用 shell 脚本仅从 sftp 获取最新文件

    我只需要按照日期从 sftp 获取最新文件 例如 yyyy mm dd 我尝试了较低的命令 但它将获取目录中的所有文件 latest file ls ltr tail 1 awk print 9 scp r latest file user
  • 依赖于私有 AZ 存储库的 Azure 构建管道

    我们在 Azure 存储库中有一个 Angular 项目 它引用依赖项下的 packages json 文件中的另一个私有 Azure 项目 存储库 该项目在本地为所有开发人员构建良好 但在 Azure Pipeline 中失败 身份验证失
  • oracle程序创建并运行ora-00900错误

    我在 dbeaver 中做了这样的 oracle 程序 CREATE OR REPLACE PROCEDURE p test IS I MESSAGE VARCHAR2 100 test BEGIN dbms output put line
  • C++ - 最佳实践:“使用 std::cout” 与“std::cout” [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我知道 在 C 中 我们永远不应该使用 using namespace std 两种可能的替代方案是 1 添加using std cout 在文件的开头 然后输入cout每当需要时 2 t
  • 是否可以在 PHP 中创建静态类(就像在 C# 中一样)?

    我想在 PHP 中创建一个静态类 并让它像在 C 中一样运行 所以 第一次调用类时会自动调用构造函数 无需实例化 诸如此类的东西 static class Hello private static greeting Hello privat
  • 在 cakephp 2 的行为中读取会话变量

    我有一种行为可以根据会话中存储的用户 ID 来隔离用户数据 在 CakePHP 1 3 中你可以这样做 App import Component Session session new SessionComponent session gt
  • 验证在单元测试中调用了一种方法或另一种方法

    Example public bool Save MyObj instance if instance IsNew this repository Create instance else this repository Update in
  • 带有 nginx ssl 直通的反向代理

    我有多个 ISS Web 服务器 在每个 IIS 服务器上托管多个 Web 应用程序 每个系统上都有一个公共证书 每个 IIS 都有一个唯一的 IP 所有IIS服务器都放置在同一个DMZ中 我在另一个 DMZ 中设置了 nginx 系统 我
  • R 中显示的摘要很短,许多术语显示为“其他”

    如何显示完整的输出摘要 而不将任何值分类为 其他 summary d Date of Sale City Department Product 1 18 2015 149 A 5290 Footwear Mens 538 13245 255
  • 如何使用 Vertx JDBC Client 使用列表作为 SQL 查询的参数源?

    我有一个 Vert x Web 应用程序 需要查询运行 Postgres 10 7 的 AWS RDS 实例 Vert x JDBC 客户端是io vertx vertx jdbc client 3 8 4 我想查询一个表 其约束条件是某个
  • 清算意图

    我的 Android 应用程序被传递信息的意图 状态栏中的待定意图 调用 当我按下主页按钮并按住主页按钮重新打开我的应用程序时 它会再次调用意图 并 且相同的附加功能仍然存在 Override public void onSaveInsta
  • android Volley如何发布多个参数

    如何发布多个参数android Volley 发布多个数组 如 101 102 103 params put sessionid 101 102 103 就像 任何其他方式 public void postCompanyArticle St
  • 没有选择 emacs ido 所建议的内容? [复制]

    这个问题在这里已经有答案了 在我当前的工作目录中 WD有一个abc txt文件 现在我想做另一个abc txt子目录下 WD NEW 当我打字时C x C f和目录 WD NEW abc txt ido 正在将字符串更改为 WD abc t
  • 如何为 scikit-learn 提供随机数生成器的种子?

    我正在尝试为一些使用 scikit learn 的代码编写单元测试 然而 我的单元测试似乎是不确定的 AFAIK 我的代码中 scikit learn 使用随机性的唯一地方是它的LogisticRegression模型及其train tes