Python:未定义名称“RandomOverSampler”

Posted

技术标签:

【中文标题】Python:未定义名称“RandomOverSampler”【英文标题】:Python: name 'RandomOverSampler' is not defined 【发布时间】: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 是您名称空间中其他地方的一个函数。 【参考方案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()

以上是关于Python:未定义名称“RandomOverSampler”的主要内容,如果未能解决你的问题,请参考以下文章

Python / Access NameError:名称''未定义

名称出口未在 python 中定义

Python:未定义名称“RandomOverSampler”

Python 脚本名称未定义

Python NameError:名称未定义

python NameError:名称'ftax'未定义[关闭]