Как получить примерные индексы из RandomUnderSampler в imblearn - PullRequest
0 голосов
/ 19 марта 2020

Кто-нибудь знает, можно ли / как получить индексы выбранных сэмплов после недостаточной выборки с помощью RandomUnderSampler от imblearn? Раньше был аргумент «return_indices = True», который теперь был удален для новой версии и предположительно был заменен атрибутом «sample_indices_». Однако, если я пытаюсь использовать этот атрибут, он не работает (см. Код ниже). Я использую imblearn версии 0.6.2.

russs = RandomUnderSampler(random_state=0,sampling_strategy={6: 600}).fit(X_train_point,y_train_point)
russs.sample_indices_

AttributeError                            Traceback (most recent call last)
<ipython-input-78-8397ba40f19b> in <module>
      1 russs = RandomUnderSampler(random_state=0,sampling_strategy={6: 600}).fit(X_train_point,y_train_point)
----> 2 russs.sample_indices

AttributeError: 'RandomUnderSampler' object has no attribute 'sample_indices'

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Также с этим сталкиваются .. Несмотря на то, что в документах написано Устаревшее с версии 0.4: return_indices устарела. Вместо этого используйте атрибут sample_indices_. Я вернулся к 0.5.0 и могу использовать старый аргумент return_indices = True.

pip install imbalanced-learn==0.5.0
0 голосов
/ 25 марта 2020

Я также нашел обходной путь. Поскольку недостаточная выборка основана исключительно на y_vector, можно добавить счетчик вместо x-вектора / массива и записать его следующим образом:

counter=range(0,len(y_train_point))
index,y_resampled=RandomUnderSampler(random_state=0,sampling_strategy={6:600}).fit(counter,y_train_point)
X_resampled=X_train_point[index]
...