1

有谁知道在使用 imblearn 的 RandomUnderSampler 进行欠采样后是否/如何获得所选样本的索引?曾经有一个参数“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'
4

3 回答 3

3

我还找到了一种解决方法。由于欠采样仅基于 y_vector,因此可以添加一个反变量而不是 x-vector/array,并将其编写如下:

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]
于 2020-03-25T15:20:17.833 回答
1

我昨天遇到了这个问题,最后我可以访问该属性。

确保你没有忘记最后的下划线,从错误消息看来你有。

它应该是

russs.sample_indices_

不是

russs.sample_indices
于 2020-09-07T17:59:03.467 回答
1

也面临这个问题.. 尽管文档说 自 0.4 版起已弃用:return_indices 已弃用。请改用属性 sample_indices_。 我恢复到 0.5.0 并且能够使用旧的 return_indices=True 参数。

pip install imbalanced-learn==0.5.0
于 2020-03-24T13:10:43.183 回答