Как использовать Random Undersampler с ratio = 'dict' в imblearn?

Я пытаюсь справиться с несбалансированным набором данных, используя случайный недосэмплер imblearn. Я хочу указать количество меток для выборки вручную. Вот мой код:

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: Неизвестный тип параметров для отношения.

Какой должен быть правильный синтаксис для прохождения того же самого?

1 ответ

В зависимости от версии, которую вы используете, вместо "ratio" вы должны использовать "sampling_strategy", когда используете dict.

Попробуйте установить версию 0.3

imblearn 0.2.1 не поддерживает словарь. Вам нужно будет установить его из источника.

pip install -U git+https://github.com/scikit-learn-contrib/imbalanced-learn.git
Другие вопросы по тегам