我想使用 imbalanced-learn 模块中的 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(下称“ 目标类型应为二进制。')
但是documentation说:
注释
支持多类重采样。
我是否遗漏了一些用于多类案件的东西?如果这仅适用于二进制类,是否还有其他库或模块支持多类过采样?
答案 0 :(得分:2)
我昨天遇到了同样的情况,
我用conda来安装库,
我找到了文件 - > base.py
它与github上的最新版本有所不同。
所以我git克隆了最新版本的github
https://github.com/scikit-learn-contrib/imbalanced-learn
强>
然后,
万事如荼!
你可以使用多级井
答案 1 :(得分:0)
您需要使用以下内容更新imblearn:
pip install -U imbalanced-learn
答案 2 :(得分:0)
RandomOverSampler() 对我来说非常适合处理 9 个标签的多类问题 我在您的代码中看到您使用的是 ada 过采样器而不是您定义的 ros。