【问题标题】:Python: name 'RandomOverSampler' is not definedPython:未定义名称“RandomOverSampler”
【发布时间】:2021-10-18 18:06:18
【问题描述】:

我正在尝试使用 imblearn 对数据帧进行一些过采样和欠采样。然而,当调用任一函数时(例如RandomOverSampler),它表示它没有定义。

包含 imblearn 库

import imblearn

调用 print(imblearn.version) 时,也会打印版本号 0.8.0

import imblearn
OverSampling = RandomOverSampler(sampling_strategy=0.5)

感谢任何帮助,因为我无法理解可能的原因(可能非常简单)

【问题讨论】:

  • 请提供预期的minimal, reproducible example (MRE)。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。您的导入问题已经在许多其他地方在线和 Stack Overflow 上得到解决——第一个是拼写错误的名称。
  • @Prune 完成 :) 。我实际上进行了搜索,大多数解决方案只是建议重新安装也没有帮助的软件包
  • 请参考任何关于导入包的教程。您发布的代码不会尝试调用 imblearn 中的任何内容。如给定的那样,RandomOverSampler 是您名称空间中其他地方的一个函数。

标签: python python-3.x imblearn


【解决方案1】:

您的导入应该类似于 from imblearn.over_sampling import RandomOverSampler,因为您正在尝试从 imblearn 模块导入并直接实例化特定类。

【讨论】:

  • 感谢您的回答。它似乎已经解决了函数未定义的问题。但是当调用 fit_sample 方法时,它说没有这个名称的属性: OverSampling = RandomOverSampler(sampling_strategy=0.5) X_Over = Data.drop(["Gender"], axis=1) Y_Over = Data["Gender"] X_Over, Y_Over = OverSampling.fit_sample(X_Over, Y_Over)
  • 我认为你真正想要的那个版本是fit_resample() 而不是fit_sample()
猜你喜欢
  • 2016-05-16
  • 2013-01-26
  • 2021-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 2014-03-23
相关资源
最近更新 更多