-1

我有一个包含不平衡类的数据集。使用“sklearn.StratifiedKFold”拆分数据,然后使用各种分类方法进行测试。结果不好,可能是因为类不平衡。

我之前没有找到用来平衡类的库或方法。一些帮助?非常感谢。

4

1 回答 1

-1

这是一个很好的答案和教程: elitedatascience.com

技术说明: 1. 上采样少数类 上采样是随机复制少数类的观察结果以增强其信号的过程。

这样做有几种启发式方法,但最常见的方法是简单地重新采样并替换。

  • 首先,我们将每个类的观察结果分成不同的 DataFrame。
  • 接下来,我们将通过替换对少数类进行重新采样,将样本数设置为与多数类匹配。
  • 最后,我们将上采样的少数类 DataFrame 与原始的多数类 DataFrame 结合起来。

    1. 下采样多数类下采样涉及从多数类中随机删除观察值,以防止其信号支配学习算法。

这样做最常见的启发式方法是重新采样而不进行替换。该过程类似于上采样的过程。以下是步骤:

  • 首先,我们将每个类的观察结果分成不同的 DataFrame。
    • 接下来,我们将在不替换的情况下对多数类进行重新采样,将样本数量设置为与少数类的数量相匹配。
    • 最后,我们将下采样的多数类 DataFrame 与原始少数类 DataFrame 结合起来。
于 2018-04-30T02:18:55.357 回答