我有一个数据集,其中包含超过 600 万个正常数据和大约 50 个异常数据。这些异常数据是手动识别的(通过监控用户在摄像头上的活动并识别)。我需要开发一个模型来检测这些异常。
我的问题是异常数据看起来像正常数据,这意味着它们不是异常值或具有某种模式。如果我将正常数据绘制在异常数据上,它们处于相同的分布中。
我尝试了几种异常检测方法:
识别异常的多元高斯分布方法
- 我尝试创建异常数据将是异常值的新特征,然后我可以使用多元高斯分布方法,但无法找到任何组合来隔离异常。
我想没有必要使用分类算法,因为数据集高度不平衡。
- 我试过 OneClassSVM、DecisionTree、RandomForest,但 AUC 是 0.5(和随机一样好)。
如何为这种场景实现模型?
我能想到的其他方法:
- 使用自动编码器开发 NN
- 尝试生成合成样本并重新采样数据集