"All zero class" 神经网络预测

"All zero class" prediction by Neural Network

在涉及识别欺诈交易的class化问题中,我使用堆叠式自动编码器降低了数据的维度(28 列)[Logit 在 statsmodels 中检测到完全准分离] (28->15->5) 并将压缩数据(5 列)馈入具有两个隐藏层的神经网络,每个隐藏层具有 10 个节点和 'relu' 激活函数。我训练了 100 个 epochs 的模型(AUC 指标没有超过 0.500,几个 epochs 后 train loss 变得恒定)。模型预测测试集的所有记录都是非欺诈性的(0 class) 并产生了一个像这样的混淆矩阵:

混淆矩阵: [[70999 0] [115 0]] 准确度分数:0.9983828781955733

有人可以解释这个结果背后的问题并提出可行的解决方案吗?..

由于您的全零 class 预测准确率超过 99%,因此训练集中的欺诈案例百分比低于 1%

通常情况下,如果欺诈案例很少见,则模型不会对欺诈案例给予足够的重视以进行良好的预测。

要解决此问题,您可以增加成本以惩罚大多数人 class,或增加权重以惩罚大多数人 class 或使用 class 平衡方法,例如 SMOTE