什么模型用于完全不平衡的数据?

人工智能 人工智能设计
2021-10-30 14:00:55

我正在做一个反欺诈项目。在项目中,我们试图预测出时间数据集中的欺诈用户。但作弊用户的比例很低,只有3%。我们期望模型的精度超过 15%。

我尝试了逻辑回归、GBDT+LR、xgboost。所有模型都不够好。逐步逻辑回归表现最好,其精度为 9%,召回率为 6%。

有没有其他模型可以用来解决这个问题或任何其他建议?

2个回答

您可以平衡您的数据集。

许多模型使用批量样本。如果您有一个非常不平衡的数据集,您可以简单地拆分它并确保您的批次是平衡的(例如,对于神经网络,使用 32 个样本的小批量,您可以从欺诈用户中抽取 16 个,从非欺诈用户中抽取 16 个)。

在学习阶段,这可以确保模型不仅输出最常见的类,而是尝试学习区分两者。

严重不平衡的分类任务不需要特定类型的模型,您可以使用不同的模型。

您有两个选择:要么使用类权重(例如在ScikitLearn SVM 中将它们设置为“平衡” ),以表明类中的样本更重要(代表性不足),要么重新平衡您的数据集。出于重新平衡的目的,并且假设您使用的是 Python,我推荐使用Imbalanced Learn那里有过采样、欠采样、过采样以及欠采样或集成采样的算法。如果您使用它们,请检查您创建的合成样本的合理性,方法是首先降低维度,然后将它们绘制成二维。合成样本是否与真实类别相似?

我还建议您考虑(严重)不平衡问题的相关指标,并考虑无信息率。这是另一个问题。