SMOTE 和多类过采样

数据挖掘 Python 阶级失衡 采样 打击
2021-10-02 06:15:24

我读过 SMOTE 包是为二进制分类实现的。在 n 个类的情况下,它会为最小的类创建额外的示例。我可以通过运行算法 n-1 次来平衡所有类吗?

3个回答

是的,这就是 SMOTE 所做的,即使您手动执行也会得到相同的结果,或者如果您运行算法来执行此操作。

还有一些其他技术可用于平衡多类特征。附上这两个链接供您参考。

链接 1

链接 2

链接 3 正在实施几种过采样技术:

链接 3

ROSE 也可用于过采样。

希望我的回答有帮助。请让我知道您有任何其他问题。


我很确定 python 中的 SMOTE 包也可以用于多类。
只是你可以检查它的 iris 数据集的实现-

http://contrib.scikit-learn.org/imbalanced-learn/stable/auto_examples/plot_ratio_usage.html
- 如果我错了,请纠正我。

python中提供的SMOTE实现imbalanced-learn也可以用于多类问题。

查看文档中可用的以下图表:

在此处输入图像描述

在此处输入图像描述

此外,以下代码段:

from imblearn.over_sampling import SMOTE, ADASYN
X_resampled, y_resampled = SMOTE().fit_resample(X, y)
print(sorted(Counter(y_resampled).items()))
[(0, 4674), (1, 4674), (2, 4674)]

来源:https ://imbalanced-learn.readthedocs.io/en/stable/over_sampling.html#from-random-over-sampling-to-smote-and-adasyn