问题标签 [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 投票
1 回答
732 浏览

tensorflow - TensorFlow、imblearn 导入问题:

这个错误到底是什么,我该如何解决?
运行最新版本的 TensorFlow 和 Keras


0 投票
2 回答
1937 浏览

python - “NearMiss”对象没有属性“_validate_data”

详细图像

这是下面显示错误的代码。

0 投票
1 回答
103 浏览

python - 识别具有无穷大值的特征列并在 pandas,Python 3.6 中处理它

关于这个主题有很多问题和答案,但我无法解决我的问题。

我正在尝试使用 imblearn 的 ADASYN 模型来平衡我的数据集。

到目前为止,这是我的代码:

但我收到一个错误:

在线上

这里有几个问题:

  1. 您如何解决此问题?这意味着您如何识别导致此问题的数据。我的数据集有近 2300 多个特征列。
  2. 你如何解决它?

感谢您的时间!

0 投票
2 回答
868 浏览

python - 使用 SMOTE 过采样后如何返回文本数据作为输出?

SMOTE由于少数标签,我有一个多类文本数据。我已经这样做了,但是我得到了稀疏矩阵作为我的输出。

有没有办法在 SMOTE 之后取回文本数据?

这是我的代码示例:

0 投票
0 回答
137 浏览

python - 将 3D numpy 数组转换为 2D 并返回

我正在尝试使用 imblearn 随机欠采样器,但我遇到的问题是我的 X_train 是一个 3D 数组,而欠采样器需要一个 2D 数组,所以我收到了错误:

所以我尝试了这里描述的解决方案:重新采样数据 - 使用来自 imblearn 的 SMOTE 和 3D numpy 数组,但这给了我错误“无法将大小为 40000 的数组重新整形为形状 (160,10)”。

有人可以帮我如何更改数组吗?

我的数组具有以下形状: y_train: (27704, 2) X_train: (27704, 30, 5)

或者,也许有人知道如何对我的数据集进行下采样的更好方法?

0 投票
1 回答
457 浏览

python - Imblearn Pipeline 导致指标不佳

我正在研究使用以下代码创建的不平衡数据集

我尝试使用 SMOTE 过采样消除不平衡,然后尝试拟合 ML 模型。这是使用普通方法然后通过创建管道来完成的。

普通法

输出 - 准确度:0.93,精度:0.92,召回:0.86,F1:0.89

管道

输出 - 准确度:0.96,精度:0.19,召回:0.84,F1:0.31

使用管道时我做错了什么,为什么使用管道时精度和 F1 分数这么差?

0 投票
1 回答
388 浏览

scikit-learn - AttributeError 是什么意思:'ColumnSelector' 对象没有属性'n_features_in_'?

我正在进行网格搜索以调整堆叠估计器的超参数(来自 sklearn.ensemble 库的 StackingClassifier 对象)。我将 scikit 库用于 ML 和 RandomizedSearchCV 函数。除此之外,要调整的堆栈的基本估计器是管道(来自 imblearn.pipeline 库的管道对象),其中每个管道的第一步是来自 mlxtend 库的 ColumnSelector 对象。网格搜索旨在查看一长串变量组合,因此网格的参数分布仅通过 ColumnSelector 对象的参数“cols”。我第一次运行这段代码时,一切正常,然后我将项目搁置一旁,几天后回来发现它不再工作了。代码中的一切都和我留下的一样,

AttributeError:“ColumnSelector”对象没有属性“n_features_in_”

我不明白穿的是什么。我已经尝试了很多东西,甚至卸载了 Anaconda、mlxtend、imblearn,并重新安装了最新版本,但它一直在喊同样的错误。我在谷歌上进行了搜索,但似乎没有关于此的信息。

你能帮我解决这个问题吗?

提前致谢。


附录:scikit 版本是 0.23.1,mlxtend 版本是 0.17.3,不平衡学习版本是 0.7.0。

完整的回溯如下,对象 gr2 对应于用于调整堆叠分类器的 RandomizedSearchCV 对象。我想指出,如果我使用 mlxtend 中的 StackingClassifier 对象,一切正常,但该对象没有参数 cv,它确实有来自 sklearn.ensemble 的 StackingClassifier,我需要它以获得更好的性能(我以前在一切正常的时候就有过)。

0 投票
1 回答
747 浏览

python - imblearn 管道是否会关闭采样以进行测试?

让我们假设以下代码(来自管道上的 imblearn 示例

我想确保在执行pipeline.predict(X_test)采样程序ennrenn不会执行(但当然pca必须执行)。

  1. 首先,我很清楚over-, under-, and mixed-sampling哪些程序适用于training set,而不是 test/validation set. 如果我错了,请在这里纠正我。

  2. 我浏览了imblearn Pipeline代码,但在那里找不到predict方法。

  3. 我还想确保当管道位于GridSearchCV

我只需要一些保证,这就是imblearn.Pipeline.

编辑:2020-08-28

@wundermahn 答案就是我所需要的。

此编辑只是为了补充一点,这是人们应该使用imblearn.Pipeline 不平衡预处理而不是sklearn.Pipeline在文档中无处使用的原因我找到了解释为什么imblearn需要imblearn.Pipelinesklearn.Pipeline

0 投票
1 回答
648 浏览

python - 使用 ADASYN 算法对多类数据进行过采样失败

我在下面有一个非常基本的脚本来演示这个问题:

注意,glass.csv来自这个链接

目的是平衡以下类别的不平衡:

拥有相等(或接近相等)的样本。但是,运行上面的代码会产生:

ValueError: No samples will be generated with the provided ratio settings.

更改ADASYN'sampling_strategyminority成功对minority类进行过采样6,并将其带到74样本中,但仍然使其余类不平衡。因此,我正在寻找一种使用 ADASYN对所有少数类进行完全过采样的方法。

ADASYN 文档指出: 'not majority': resample all classes but the majority class;

但这显然没有发生。

0 投票
1 回答
1903 浏览

python - 如何在 SMOTE 算法中使用字典对多类输入数据进行不同的重采样?

我想使用库在 python 中使用 SMOTE 算法执行过采样imblearn.over_sampling。我的输入数据有四个目标类。我不想对所有少数类分布进行过度采样以匹配多数类分布。我想以不同的方式对我的每个少数族裔进行过采样。

当我使用时SMOTE(sampling_strategy = 1, k_neighbors=2,random_state = 1000),出现以下错误。

然后,根据错误,我使用字典作为“sampling_strategy”,如下所示,

但是,它给出了以下错误,

有谁知道我们如何定义字典以使用 SMOTE 对数据进行不同的过采样?