用于多标签分类的 SMOTE

数据挖掘 分类 多标签分类 打击
2021-09-27 06:41:14

我有一个包含 77 个不同标签的数据集。每个样品都有一个或多个这些标签。

我做了一些数据分析,发现数据集高度不平衡——有大量具有特定标签的示例,而其他标签在数据样本中出现的频率并不高。

我正在尝试使用 SMOTE 为少数标签合成新的数据样本,但显然 imblearn 的 SMOTE 不支持多标签数据。是否有可以用于多标签分类的 SMOTE 替代方案,或者我应该将我的问题视为 77 个不同的二元分类问题,并在每次迭代中分别应用 SMOTE?

2个回答

如果某些类只有一个示例,SMOTE 将无法工作。大多数机器学习算法也不起作用。

有一种称为One Shot Learning的技术(通常用于计算机视觉),“虽然大多数基于机器学习的对象分类算法需要在数百或数千个样本/图像和非常大的数据集上进行训练,但 one-shot 学习旨在学习来自一个或几个训练样本/图像的有关对象类别的信息。”

也许您可以尝试使用一种 OSL 来帮助您进行分类,但普通的 ML 算法需要更多样本才能进行泛化。

如果您正在寻找多标签数据集的数据生成,则有一个名为 MLSMOTE 的算法。你可以读一读

https://medium.com/thecyphy/handling-data-imbalance-in-multi-label-classification-mlsmote-531155416b87