问题标签 [imblearn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
138 浏览

python-3.x - TomekLinks fit_sample(X,y) 花费大量时间

我正在研究文本分类问题。我正在使用 imblearn 模块的 TomekLinks 类对我的数据进行重新采样。但是在调用 TomekLinks 类程序的 fit_sample(X,y) 方法后,即使我等待 30 分钟也不执行任何操作。我的数据集是 1800000 条记录长(文本数据)。这是代码片段

从 imblearn.under_sampling 导入 TomekLinks

tl = TomekLinks(return_indices=True, ratio='majority',random_state=42) X_tl, y_tl = tl.sample(train_x,y_binary)

谁能帮忙解释一下为什么要花这么长时间?

此外,当我单独执行 tl.fit() 时,它会在几秒钟内完成,但是当我调用 tl.sample() 方法时,会出现错误,即 TomekLinks 中没有名为 sample 的属性

0 投票
2 回答
2884 浏览

python-3.x - 如何修复:使用提供的比率设置不会生成任何样本。(imblearn)

我有这个代码:

从 imblearn.over_sampling 导入 ADASYN

0 投票
3 回答
3577 浏览

python - 重采样数据 - 使用来自 imblearn 的 SMOTE 和 3D numpy 数组

我想重新采样我的数据集。这包括具有 3 个类别标签的分类转换数据。每类样本数量为:

  • A类计数:6945
  • B类计数:650
  • C类计数:9066
  • 样本总数:16661

没有标签的数据形状是 (16661, 1000, 256)。这意味着 (1000,256) 的 16661 个样本。我想要的是将数据上采样到多数类的样本数,即A类->(6945)

但是,调用时:

它一直说 ValueError: Found array with dim 3. Estimator expected <= 2.

如何以估算器可以拟合并且也有意义的方式展平数据?此外,在获得 X_train_res 后如何展开(使用 3D 维度)?

0 投票
1 回答
578 浏览

python - BalancedBatchGenerator 抛出 AttributeError model.fit_generator

我是 tf 和 keras 的新手,我正在使用 colab notebook python 3,带有 2.2.4-tf tensorflow.keras。

通话pip list节目

我正在尝试使用 imblearn.keras BalancedBatchGenerator 后跟 model.fit_generator 并获得属性错误

输入的训练数据和标签是一个具有形状属性的 numpy 数组,所以不确定出了什么问题

我可以使用以下代码重现此错误

在上面的代码中,如果我取消注释#import keras并更改tf.keraskerasERROR 是相似的,看起来 keras 和 tf.keras API 有一些不同

0 投票
1 回答
171 浏览

python-3.x - 无法导入 SMOTENC

我可以从 imblearn 库中导入 SMOTE,但是在导入 SMOTENC 时会引发错误:

'ImportError: 无法导入名称'SMOTENC''

我尝试更改 imblearn 的版本,但没有运气

0 投票
2 回答
467 浏览

python - 将 GridSearchCV 结果传递给 Imbalanced-Learn 的 Pipeline 对象

这里有一个有趣的问题 - 我有GridSearchCV结果,在从属性中挑选之后,grid_search_cv.results_捕获如下:

现在,据我了解,Imbalanced Learn 包的 Pipeline 对象是 SciKit-Learn 的 Pipeline 的包装器,它应该**fit_params在其方法中接受参数.fit(),如下所示:

但是,当我执行上述表达式时,我得到以下结果:

任何想法我做错了什么?

0 投票
1 回答
699 浏览

python - 不平衡学习的 FunctionSampler 抛出 ValueError

我想使用该类FunctionSamplerimblearn创建我自己的自定义类来重新采样我的数据集。

我有一个包含每个主题的路径的一维特征系列和一个包含每个主题的标签的标签系列。两者都来自一个pd.DataFrame. 我知道我必须先重塑特征数组,因为它是一维的。

当我使用该类时RandomUnderSampler,一切正常,但是,如果我首先将功能和标签都传递给该fit_resample方法 FunctionSampler,然后创建一个实例,RandomUnderSampler然后调用fit_resample该类,则会收到以下错误:

ValueError:无法将字符串转换为浮点数:'path_1'

这是产生错误的最小示例:

第一种方法(作品)

第二种方法(无效)

有谁知道这里出了什么问题?似乎fit_resample方法FunctionSampler不等于fit_resample方法RandomUnderSampler...

0 投票
3 回答
2329 浏览

python - 何时使用交叉验证和网格搜索在 imblearn 管道中进行特征选择

目前我正在构建一个数据严重不平衡的分类器。我使用 imblearn 管道首先到 StandardScaling、SMOTE,然后使用 gridSearchCV 进行分类。这确保了在交叉验证期间完成上采样。现在我想将 feature_selection 包含到我的管道中。我应该如何将此步骤包含在管道中?

0 投票
1 回答
709 浏览

python - 使用不平衡学习进行过采样后的训练形状输出

我正在使用不平衡学习对我的数据进行过采样。我想知道使用过采样方法后每个类中有多少条目。此代码运行良好:

但我转而使用管道,因此我可以使用 GridSearchCV 找到最佳的过采样方法(ADASYN、SMOTE 和 BorderlineSMOTE)。因此,我从来没有真正自己调用 fit_resample 并使用以下方式丢失我的输出:

上采样有效,但我失去了关于训练集中每个类有多少条目的输出。

有没有办法获得与使用管道的第一个示例类似的输出?

0 投票
1 回答
1540 浏览

python - 在进行 Leave-One-Group-Out 交叉验证时如何应用过采样?

我正在研究用于分类的不平衡数据,并且我之前尝试使用合成少数过采样技术 (SMOTE) 对训练数据进行过采样。但是,这一次我想我还需要使用 Leave One Group Out (LOGO) 交叉验证,因为我想在每个 CV 上留下一个主题。

我不确定我是否可以很好地解释它,但是,据我所知,要使用 SMOTE 进行 k-fold CV,我们可以在每个折叠上循环 SMOTE,正如我在另一篇文章的这段代码中看到的那样。下面是在 k-fold CV 上实现 SMOTE 的示例。

没有 SMOTE,我尝试这样做来做 LOGO CV。但是通过这样做,我将使用一个超级不平衡的数据集。

我应该如何在 leave-one-group-out CV 循环中实现 SMOTE?我对如何为合成训练数据定义组列表感到困惑。