问题标签 [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.
python - 深度学习:在训练数据集和测试数据集之间具有相同数量标签的多类分类
我正在编写用于进行多类分类的代码。我有 7 列(6 个特征和 1 个标签)的自定义数据集,训练数据集有 2 种标签(1 和 2),测试数据集有 3 种标签(1、2 和 3)。该模型的目的是查看模型预测标签“3”的效果如何。截至目前,我正在尝试MLP算法,代码如下:
但是,我收到以下错误:
我试图删除展平层,但得到不同的错误:
424686 是数据集中的行数,6 是特征数。
我很感激任何建议。谢谢你。
根据 Omarfoq 的建议,现在我为训练和测试数据集使用了三个标签。代码和错误保持不变。
谁能建议我解决方案?谢谢你。
scikit-learn - 不平衡的数据集 - 如何通过网格搜索优化超参数?
我想通过对不平衡数据集使用网格搜索来优化 SVC 的超参数 C 和 Gamma。到目前为止,我使用了 class_weights='balanced' 并根据 f1 分数的平均值选择了最佳超参数。但是,数据集非常不平衡,即如果我选择了 cv=10 的 GridSearchCV,那么验证数据中没有表示一些少数类。我正在考虑使用 SMOTE,但我在这里看到了我必须设置 k_neighbors=1 的问题,因为在某些少数类中,通常只有 1-2 个样本。有没有人有提示如何在这种情况下优化超参数?有没有其他选择?
非常感谢每一个提示
python - 没有名为“sklearn.neighbors._base”的模块
我最近使用在 jupyter 中安装了 imblearn 包
但我无法导入这个包。
我收到以下错误
环境中的其他包
我检查了 sklearn 包,它包含基本模块,而不是 _base。但是修改它可能不是正确的解决方案。解决此问题的任何其他解决方案。
pandas - 不平衡学习:导入错误:无法导入名称“MultiOutputMixin”
我重新安装了最新的 scikit-learn 和不平衡学习。我还检查了所有其他库以确保它与 Imbalanced-learn 兼容。我只想运行一个简单的 RandomOverSample(),但我收到以下导入错误消息,任何建议都会有所帮助。谢谢!
错误信息:
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 的方式是不正确的。
python - 如何在 python 中处理不平衡的数据集和异常值?
我有两个疑问:
- 如果我们的数据框有一个分类问题,其中没有大量特征(列 > 100),并且假设其中 20/30 是高度相关的,并且目标列(y)非常偏向一个类;我们应该首先使用 Imblearn 消除不平衡,还是应该删除高度相关的列?
- 在分类问题中,我们应该首先标准化数据还是处理异常值?
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)
我希望有人能帮帮忙。非常感谢
python - 我正在处理一个不平衡的数据集。应用 SMOTE 算法对少数类进行上采样会产生相同的准确性和 roc_auc_score 吗?
以下代码显示了在 SMOTE 生成的数据集上进行训练时,准确度和 roc_auc_score 是如何相同的。
0.8015075376884422
0.8015075376884422
而在没有 SMOTE 的相同分类器上训练数据集时会给出不同的结果
0.7996592361209712
0.7183922969169426