Получить индексы только для пересчитанных экземпляров после передискретизации с помощью imbalanced-learn?
Для проблемы классификации двоичного текста с несбалансированными данными я использую функцию библиотеки imbalanced-learn RandomOverSampler
сбалансировать классы.
Теперь я хочу получить только те экземпляры, которые были передискретизированы (реплицированы) из исходных данных. Например, если "item_1" - это исходные данные, а item 2–4 - реплики "item_1", я требую только индексы для "item_2", "item_3", "item_4" для дальнейшей обработки и оставляю индекс для "Item_1".
- Item_1
- item_2
- item_3
- 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):]