Получить индексы только для пересчитанных экземпляров после передискретизации с помощью imbalanced-learn?

Для проблемы классификации двоичного текста с несбалансированными данными я использую функцию библиотеки imbalanced-learn RandomOverSampler сбалансировать классы.

Теперь я хочу получить только те экземпляры, которые были передискретизированы (реплицированы) из исходных данных. Например, если "item_1" - это исходные данные, а item 2–4 - реплики "item_1", я требую только индексы для "item_2", "item_3", "item_4" для дальнейшей обработки и оставляю индекс для "Item_1".

  1. Item_1
  2. item_2
  3. item_3
  4. item_4

Вот мой код:

from imblearn.over_sampling import RandomOverSampler
ros = RandomOverSampler(random_state=42)

X_listed = []
for eachTrainInstance in X_train:
    X_listed.append([eachTrainInstance])

X_tr_resampled, y_tr_resampled = ros.fit_sample(X_listed, y_train)

1 ответ

Кажется, что все экземпляры с избыточной выборкой (и, конечно, их соответствующие индексы) объединяются в конце исходных данных, подвергнутых избыточной выборке.

oversampled_instances = y_tr_resampled[len(y_train):]
Другие вопросы по тегам