问题标签 [imbalanced-data]

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 回答
150 浏览

python - 深度学习:在训练数据集和测试数据集之间具有相同数量标签的多类分类

我正在编写用于进行多类分类的代码。我有 7 列(6 个特征和 1 个标签)的自定义数据集,训练数据集有 2 种标签(1 和 2),测试数据集有 3 种标签(1、2 和 3)。该模型的目的是查看模型预测标签“3”的效果如何。截至目前,我正在尝试MLP算法,代码如下:

但是,我收到以下错误:

我试图删除展平层,但得到不同的错误:

424686 是数据集中的行数,6 是特征数。

我很感激任何建议。谢谢你。

根据 Omarfoq 的建议,现在我为训练和测试数据集使用了三个标签。代码和错误保持不变。

谁能建议我解决方案?谢谢你。

0 投票
0 回答
42 浏览

python - 多标签输出中的数据不平衡问题

我有一个图像数据集,其中两个图像(左眼和右眼)图像具有相同的多标签。

为了处理图像,我使用了两个 ResNet 并将它们的最后一层连接起来。之后,我使用 Dense 层和具有 8 个神经元和sigmoid激活的输出层。Binary Cross Entropy用作损失函数。

问题是我遇到了不平衡数据集问题。有什么办法可以处理这个。

在此处输入图像描述

0 投票
1 回答
1145 浏览

scikit-learn - 不平衡的数据集 - 如何通过网格搜索优化超参数?

我想通过对不平衡数据集使用网格搜索来优化 SVC 的超参数 C 和 Gamma。到目前为止,我使用了 class_weights='balanced' 并根据 f1 分数的平均值选择了最佳超参数。但是,数据集非常不平衡,即如果我选择了 cv=10 的 GridSearchCV,那么验证数据中没有表示一些少数类。我正在考虑使用 SMOTE,但我在这里看到了我必须设置 k_neighbors=1 的问题,因为在某些少数类中,通常只有 1-2 个样本。有没有人有提示如何在这种情况下优化超参数?有没有其他选择?

非常感谢每一个提示

0 投票
4 回答
22151 浏览

python - 没有名为“sklearn.neighbors._base”的模块

我最近使用在 jupyter 中安装了 imblearn 包

但我无法导入这个包。

我收到以下错误

环境中的其他包

我检查了 sklearn 包,它包含基本模块,而不是 _base。但是修改它可能不是正确的解决方案。解决此问题的任何其他解决方案。

0 投票
1 回答
68 浏览

python - 使用 Keras 深度学习的不平衡数据集

我有一个如下所示的数据集:Training (Class 0: 471, Class 1: 986) Testing (Class 0: 177, Class 1: 246。我将数据分成 80% 用于训练,20% 用于验证。我知道那是一个不平衡的数据集,我已经尝试过 Class_weight 但问题仍然存在。我重新训练了我的基线 CNN,我总是得到如图所示的结果。有人可以帮我吗? 我训练后的结果

0 投票
2 回答
5386 浏览

pandas - 不平衡学习:导入错误:无法导入名称“MultiOutputMixin”

我重新安装了最新的 scikit-learn 和不平衡学习。我还检查了所有其他库以确保它与 Imbalanced-learn 兼容。我只想运行一个简单的 RandomOverSample(),但我收到以下导入错误消息,任何建议都会有所帮助。谢谢!

错误信息:

0 投票
1 回答
387 浏览

python - cross_val_score 和 StratifiedKFold 之间的 F-Score 差异

我想对不平衡的数据使用随机森林分类器,其中 X 是表示特征的 np.array,y 是表示标签(90% 0 值和 10% 1 值的标签)的 np.array。由于我不确定如何在交叉验证中进行分层,如果它有所作为,我还使用 StratifiedKFold 手动交叉验证。我希望得到不一样但有些相似的结果。由于情况并非如此,我想我错误地使用了一种方法,但我不明白是哪一种。这是代码

我还尝试了没有 class_weight 参数的分类器。从这里我开始将这两种方法与 f1-score 进行比较

交叉验证的 10 个 f1 分数都在 65% 左右。现在是 StratifiedKFold:

StratifiedKFold 的 10 个 f1 分数让我的值达到了 90% 左右。这是我感到困惑的地方,因为我不了解两种方法之间的巨大差异。如果我只是将分类器拟合到训练数据并将其应用于测试数据,我也会得到大约 90% 的 f1 分数,这让我相信我应用 cross_val_score 的方式是不正确的。

0 投票
1 回答
107 浏览

python - 如何在 python 中处理不平衡的数据集和异常值?

我有两个疑问:

  1. 如果我们的数据框有一个分类问题,其中没有大量特征(列 > 100),并且假设其中 20/30 是高度相关的,并且目标列(y)非常偏向一个类;我们应该首先使用 Imblearn 消除不平衡,还是应该删除高度相关的列?
  2. 在分类问题中,我们应该首先标准化数据还是处理异常值?
0 投票
2 回答
3449 浏览

neural-network - Pytorch - 如何使用加权随机采样器进行欠采样

我有一个不平衡的数据集,想对过度代表的类进行欠采样。我该怎么做。我想使用 weightedrandomsampler,但我也愿意接受其他建议。

到目前为止,我假设我的代码必须具有如下结构。但我不知道该怎么做。

trainset = datasets.ImageFolder(path_train,transform=transform) ... sampler = data.WeightedRandomSampler(weights=..., num_samples=..., replacement=...) ... trainloader = data.DataLoader(trainset, batchsize = batchsize, sampler=sampler)

我希望有人能帮帮忙。非常感谢

0 投票
0 回答
24 浏览

python - 我正在处理一个不平衡的数据集。应用 SMOTE 算法对少数类进行上采样会产生相同的准确性和 roc_auc_score 吗?

以下代码显示了在 SMOTE 生成的数据集上进行训练时,准确度和 roc_auc_score 是如何相同的。

0.8015075376884422
0.8015075376884422

而在没有 SMOTE 的相同分类器上训练数据集时会给出不同的结果

0.7996592361209712
0.7183922969169426