使用imblearn过采样多类数据

时间:2017-08-06 00:06:18

标签: python scikit-learn imblearn

我想使用 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说:

  

注释

     

支持多类重采样。

我是否遗漏了一些用于多类案件的东西?如果这仅适用于二进制类,是否还有其他库或模块支持多类过采样?

3 个答案:

答案 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。