问题标签 [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.
tensorflow - TensorFlow、imblearn 导入问题:
这个错误到底是什么,我该如何解决?
运行最新版本的 TensorFlow 和 Keras
python - “NearMiss”对象没有属性“_validate_data”
这是下面显示错误的代码。
python - 识别具有无穷大值的特征列并在 pandas,Python 3.6 中处理它
关于这个主题有很多问题和答案,但我无法解决我的问题。
我正在尝试使用 imblearn 的 ADASYN 模型来平衡我的数据集。
到目前为止,这是我的代码:
但我收到一个错误:
在线上
这里有几个问题:
- 您如何解决此问题?这意味着您如何识别导致此问题的数据。我的数据集有近 2300 多个特征列。
- 你如何解决它?
感谢您的时间!
python - 使用 SMOTE 过采样后如何返回文本数据作为输出?
SMOTE
由于少数标签,我有一个多类文本数据。我已经这样做了,但是我得到了稀疏矩阵作为我的输出。
有没有办法在 SMOTE 之后取回文本数据?
这是我的代码示例:
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)
或者,也许有人知道如何对我的数据集进行下采样的更好方法?
python - Imblearn Pipeline 导致指标不佳
我正在研究使用以下代码创建的不平衡数据集
我尝试使用 SMOTE 过采样消除不平衡,然后尝试拟合 ML 模型。这是使用普通方法然后通过创建管道来完成的。
普通法
输出 - 准确度:0.93,精度:0.92,召回:0.86,F1:0.89
管道
输出 - 准确度:0.96,精度:0.19,召回:0.84,F1:0.31
使用管道时我做错了什么,为什么使用管道时精度和 F1 分数这么差?
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,我需要它以获得更好的性能(我以前在一切正常的时候就有过)。
python - imblearn 管道是否会关闭采样以进行测试?
让我们假设以下代码(来自管道上的 imblearn 示例)
我想确保在执行pipeline.predict(X_test)
采样程序enn
时renn
不会执行(但当然pca
必须执行)。
首先,我很清楚
over-, under-, and mixed-sampling
哪些程序适用于training set
,而不是test/validation set
. 如果我错了,请在这里纠正我。我浏览了
imblearn Pipeline
代码,但在那里找不到predict
方法。我还想确保当管道位于
GridSearchCV
我只需要一些保证,这就是imblearn.Pipeline
.
编辑:2020-08-28
@wundermahn 答案就是我所需要的。
此编辑只是为了补充一点,这是人们应该使用imblearn.Pipeline
不平衡预处理而不是sklearn.Pipeline
在文档中无处使用的原因我找到了解释为什么imblearn
需要imblearn.Pipeline
sklearn.Pipeline
python - 使用 ADASYN 算法对多类数据进行过采样失败
我在下面有一个非常基本的脚本来演示这个问题:
目的是平衡以下类别的不平衡:
拥有相等(或接近相等)的样本。但是,运行上面的代码会产生:
ValueError: No samples will be generated with the provided ratio settings.
更改ADASYN
'sampling_strategy
以minority
成功对minority
类进行过采样6
,并将其带到74
样本中,但仍然使其余类不平衡。因此,我正在寻找一种使用 ADASYN对所有少数类进行完全过采样的方法。
ADASYN 文档指出:
'not majority': resample all classes but the majority class;
但这显然没有发生。
python - 如何在 SMOTE 算法中使用字典对多类输入数据进行不同的重采样?
我想使用库在 python 中使用 SMOTE 算法执行过采样imblearn.over_sampling
。我的输入数据有四个目标类。我不想对所有少数类分布进行过度采样以匹配多数类分布。我想以不同的方式对我的每个少数族裔进行过采样。
当我使用时SMOTE(sampling_strategy = 1, k_neighbors=2,random_state = 1000)
,出现以下错误。
然后,根据错误,我使用字典作为“sampling_strategy”,如下所示,
但是,它给出了以下错误,
有谁知道我们如何定义字典以使用 SMOTE 对数据进行不同的过采样?