如何在imblearn中使用ratio ='dict'的Random Undersampler?

时间:2017-06-23 15:18:18

标签: python python-3.x syntax syntax-error imblearn

我正在尝试使用imblearn的random under-sampler来处理不平衡的数据集。我想指定手动欠采样的标签数量。这是我的代码:

sm = RandomUnderSampler(ratio = {0:142498, 1: 495}, random_state=42)
X_train, y_train = sm.fit_sample(X_tr,encoded_Ytrain)
print(format(Counter(y_train)))

然而,这会引发错误:

  

文件“first_approach.py​​”,第56行,<模块>       X_train,y_train = sm.fit_sample(X_tr,encoded_Ytrain)       提高ValueError('比例的未知参数类型。')ValueError:比率的未知参数类型。

传递相同内容的正确语法是什么?

2 个答案:

答案 0 :(得分:1)

取决于使用的版本,使用字典时必须使用“ sampling_strategy”,而不是“ ratio”。

答案 1 :(得分:0)

尝试安装0.3版

imblearn 0.2.1不支持字典。您需要从源代码安装它。

pip install -U git+https://github.com/scikit-learn-contrib/imbalanced-learn.git