优化欺诈检测不平衡数据的指标

问题描述 投票:0回答:1

我需要您的帮助来提高我的模型性能。正如大多数欺诈检测所发生的情况一样,我有一个不平衡的数据集 (0.1/0.9)。我想优化目标 1 和 0 的召回率,因为在一种情况下,我想避免欺诈检测,另一方面,我想限制将非欺诈客户定位为欺诈的成本,因为 5% 的不正确客户分类会使我的收入每次减少 3,000 欧元(而针对正确的欺诈行为将使我为每个检测到的客户节省 1,000 欧元的损失)。

我的第一个问题是:根据这个问题,您会考虑哪些指标?我更注重回忆,但我会阅读你的意见。

第二个问题:如何提高模型性能?

到目前为止,我在不降低阈值的情况下得到的最好结果是:

准确度:0.89 混淆矩阵: [[3153 279] [145297]]

分类报告: 精确召回率 f1-score 支持

       0       0.96      0.92      0.94      3432
       1       0.52      0.67      0.58       442

accuracy                           0.89      3874

如果我降低阈值以增加目标 1 的召回率:

准确度:0.61 混淆矩阵: [[1959 1473] [ 42 400]]

分类报告: 精确召回率 f1-score 支持

       0       0.98      0.57      0.72      3432
       1       0.21      0.90      0.35       442

accuracy                           0.61      3874

我尝试了几种模型: 线性回归、XGBoost、随机森林和 SVM

此外,甚至是过采样/去采样技术(仅在训练集上) 随机过采样、随机欠采样、SMOTE

您还有其他建议吗?

machine-learning classification resampling imbalanced-data fraud-prevention
1个回答
0
投票

LogisticRegression
LinearRegression
更适合这个分类问题,所以如果你还没有尝试的话,值得一试。

ROC 指标总结了召回率和误报率。理想的 ROC 指标为 1.0 对应于实现完美召回且没有误报的场景。

sklearn
有一些 ROC 指标 的加权变体。这提供了一种在模型训练后对模型进行评分的方法。

请注意,您不能使用此类指标直接优化中的模型

sklearn
- 您需要切换到 PyTorch 或类似工具并使用自定义损失函数。

© www.soinside.com 2019 - 2024. All rights reserved.