我有一个类别不平衡的数据集。我使用”sklearn.StratifiedKFold”来分割数据,然后用各种分类方法进行测试。结果不太理想,可能是因为类别不平衡的原因。
我没有找到在之前平衡类别的库或方法。能提供一些帮助吗?非常感谢。
回答:
这里有一个很好的回答和教程:elitedatascience.com
解释的技术:1. 上采样少数类上采样是随机复制少数类中的观察结果以增强其信号的过程。
有几种启发式方法可以做到这一点,但最常见的方式是简单地进行有放回的重抽样。
- 首先,我们将把每个类别的观察结果分离到不同的DataFrame中。
- 接下来,我们将对少数类进行有放回的重抽样,设置样本数量与多数类匹配。
-
最后,我们将上采样的少数类DataFrame与原始的多数类DataFrame合并。
- 下采样多数类下采样涉及从多数类中随机移除观察结果,以防止其信号主导学习算法。
最常见的启发式方法是无放回的重抽样。该过程与上采样类似。以下是步骤:
- 首先,我们将把每个类别的观察结果分离到不同的DataFrame中。
- 接下来,我们将对多数类进行无放回的重抽样,设置样本数量与少数类匹配。
- 最后,我们将下采样的多数类DataFrame与原始的少数类DataFrame合并。