📜  处理不平衡数据以进行分类

📅  最后修改于: 2022-05-13 01:58:08.982000             🧑  作者: Mango

处理不平衡数据以进行分类

平衡与不平衡数据集:

  • 平衡数据集:在平衡数据集中,目标列中的类分布大致相等。
  • 不平衡数据集:在不平衡数据集中,目标列中的类分布高度不均。

让我们借助一个例子来理解这一点:
示例:假设存在以下训练数据的二元分类问题:

  • 总观察次数:1000
  • 目标变量类是“是”或“否”。

情况1:
如果有 900 个“是”和 100 个“否”,那么它代表一个不平衡的数据集,因为这两个类的分布非常不均匀。 .

案例2:
如果有 550 个“是”和 450 个“否”,则它表示平衡数据集,因为这两个类的分布大致相等。

因此,不平衡数据集中两个类的样本大小之间存在显着差异。



不平衡数据集的问题:

  • 算法可能会偏向于多数类,因此倾向于将输出预测为多数类。
  • 少数类观察对模型来说看起来像噪音,被模型忽略。
  • 不平衡的数据集给出了误导性的准确度分数。

处理不平衡数据集的技术:

  • 下采样:
    在这种技术中,我们减少了多数类的样本量,并尝试将其与少数类的样本量相匹配。

    例子 :
    让我们以一个包含 1000 条记录的不平衡训练数据集为例。

    欠采样前:

    • 目标类“是”= 900 条记录
    • 目标类“否”= 100 条记录

    欠采样后:

    • 目标类“是”= 100 条记录
    • 目标类“否”= 100 条记录

    现在,两个类具有相同的样本量。

    优点:



    • 所需的计算能力低。

    缺点:

    • 由于记录丢失,一些重要的模式可能会丢失。
    • 仅对具有数百万条记录的庞大数据集有益。

    注意:仅当我们有大量记录时才应进行欠采样。

  • 过采样:
    在这种技术中,我们通过复制增加少数类的样本量,并尝试将其与多数类的样本量相匹配。

    例子 :
    让我们采用具有 1000 条记录的相同不平衡训练数据集。

    过采样前:

    • 目标类“是”= 900 条记录
    • 目标类“否”= 100 条记录

    过采样后:

    • 目标类“是”= 900 条记录
    • 目标类“否”= 900 条记录

    优点:

    • 模式不会丢失,从而提高了模型性能。

    缺点:

    • 数据的复制会导致过度拟合。
    • 需要高计算能力。

那么,应该选择“欠采样”还是“过采样”?

这取决于数据集。如果我们有一个庞大的数据集,则选择欠采样”,否则选择“过采样”。

使用基于树的模型:
与非基于树的模型相比,“基于树的模型”由于其层次结构而更容易处理不平衡数据集。

不同的基于树的模型是:

  • 决策树
  • 随机森林
  • 梯度提升树

使用异常检测算法:

  • 异常或异常值检测算法是“一类分类算法”,有助于识别数据集中的异常值(稀有数据点)。
  • 在不平衡数据集中,假设“多数类记录为正常数据”和“少数类记录为异常数据”。
  • 这些算法是在 Normal 数据上训练的。
  • 经过训练的模型可以预测新记录是正常还是异常值。