处理不平衡数据以进行分类
平衡与不平衡数据集:
- 平衡数据集:在平衡数据集中,目标列中的类分布大致相等。
- 不平衡数据集:在不平衡数据集中,目标列中的类分布高度不均。
让我们借助一个例子来理解这一点:
示例:假设存在以下训练数据的二元分类问题:
- 总观察次数:1000
- 目标变量类是“是”或“否”。
情况1:
如果有 900 个“是”和 100 个“否”,那么它代表一个不平衡的数据集,因为这两个类的分布非常不均匀。 .
案例2:
如果有 550 个“是”和 450 个“否”,则它表示平衡数据集,因为这两个类的分布大致相等。
因此,不平衡数据集中两个类的样本大小之间存在显着差异。
不平衡数据集的问题:
- 算法可能会偏向于多数类,因此倾向于将输出预测为多数类。
- 少数类观察对模型来说看起来像噪音,被模型忽略。
- 不平衡的数据集给出了误导性的准确度分数。
处理不平衡数据集的技术:
- 下采样:
在这种技术中,我们减少了多数类的样本量,并尝试将其与少数类的样本量相匹配。例子 :
让我们以一个包含 1000 条记录的不平衡训练数据集为例。欠采样前:
- 目标类“是”= 900 条记录
- 目标类“否”= 100 条记录
欠采样后:
- 目标类“是”= 100 条记录
- 目标类“否”= 100 条记录
现在,两个类具有相同的样本量。
优点:
- 所需的计算能力低。
缺点:
- 由于记录丢失,一些重要的模式可能会丢失。
- 仅对具有数百万条记录的庞大数据集有益。
注意:仅当我们有大量记录时才应进行欠采样。
- 过采样:
在这种技术中,我们通过复制增加少数类的样本量,并尝试将其与多数类的样本量相匹配。例子 :
让我们采用具有 1000 条记录的相同不平衡训练数据集。过采样前:
- 目标类“是”= 900 条记录
- 目标类“否”= 100 条记录
过采样后:
- 目标类“是”= 900 条记录
- 目标类“否”= 900 条记录
优点:
- 模式不会丢失,从而提高了模型性能。
缺点:
- 数据的复制会导致过度拟合。
- 需要高计算能力。
那么,应该选择“欠采样”还是“过采样”?
这取决于数据集。如果我们有一个庞大的数据集,则选择“欠采样”,否则选择“过采样”。
使用基于树的模型:
与非基于树的模型相比,“基于树的模型”由于其层次结构而更容易处理不平衡数据集。
不同的基于树的模型是:
- 决策树
- 随机森林
- 梯度提升树
使用异常检测算法:
- 异常或异常值检测算法是“一类分类算法”,有助于识别数据集中的异常值(稀有数据点)。
- 在不平衡数据集中,假设“多数类记录为正常数据”和“少数类记录为异常数据”。
- 这些算法是在 Normal 数据上训练的。
- 经过训练的模型可以预测新记录是正常还是异常值。