3

我想使用不平衡学习模块中的RandomOverSampler函数来对具有两个以上类的数据进行过采样。以下是我的 3 个类的代码:

import numpy as np
from imblearn.over_sampling import RandomOverSampler

data = np.random.randn(30,5)
label = np.random.randint(3, size=30)

ros = RandomOverSampler(random_state=3)
data_res, label_res = ada.fit_sample(data, label)

运行后,它返回此警告:

UserWarning:目标类型应该是二进制。warnings.warn('目标类型应该是二进制的。')

但是文档说:

笔记

支持多类重采样。

我是否缺少将其用于多类案例的东西?如果这仅适用于二进制类,是否还有其他支持多类过采样的库或模块?

4

3 回答 3

2


我昨天遇到了同样的情况,
我使用 conda 安装库,
我发现文件 -> base.py
它与 github 上的最新版本有所不同。

所以我通过 github
https://github.com/scikit-learn-contrib/imbalanced-learn

git clone 最新版本 ,然后
一切正常!
你可以很好地使用多类

于 2017-08-06T20:08:59.047 回答
0

您需要使用以下命令更新 imblearn:

pip install -U 不平衡学习

于 2018-04-28T20:36:38.563 回答
0

RandomOverSampler() 对我来说非常适用于我在您的代码中看到的具有 9 个标签的多类问题,您使用的是 ada oversampler 而不是您定义的 ros。

于 2021-06-01T11:29:47.767 回答