异常检测 - 机器学习的概念性帮助

数据挖掘 机器学习 Python 异常检测
2022-02-17 23:42:57

我正在研究金融数据集的异常检测模型问题 - 卡交易集。我的团队成员提出了一个想法,“首先用正常的数据实例训练模型,并在测试期间将异常数据传递给训练好的模型,以查看模型是否能够检测到异常。” 任何机器学习算法都可以这样吗?如果是这样,任何人都可以建议可以使用哪些算法来实现这个想法?

另一个问题:当没有正确标记的欺诈数据而我们只有交易信息时,情况如何。半监督学习有效吗?我没有这种 ML 方法的经验。任何人都可以为此建议好的资源,并建议半监督学习或混合监督学习可以用于异常/欺诈检测吗?

3个回答

有两种选择:

你有一个标签

那么你可能遇到的是一个二元分类问题,可能是不平衡的。如果发生这种情况,请遵循此https://towardsdatascience.com/practical-tips-for-class-imbalance-in-binary-classification-6ee29bcdb8a7

你没有标签

然后你有一个无监督学习问题,在金融中真正使用了隔离森林。如果是这种情况,请查看此https://towardsdatascience.com/outlier-detection-with-isolation-forest-3d190448d45e

有几种选择:

  • PDF 估计:正常情况将接近节点,异常将被定义为异常值(您可以使用核方法,但这些方法在高维中表现不佳)在此设置中,您估计正常情况 pdf,然后使用此 pdf 进行预测如果新点是异常:异常与正常情况“相距甚远”。您需要优化的超参数有多远。

  • 使用二分类。在那里,您必须使用这两种情况来适应您的模型。在流行的模型中:逻辑回归、支持向量机我们的神经网络。

看看 Andrew NG 的 Coursera ML 课程,他有一个关于异常检测的部分进行了很好的解释。

多元高斯呢?

多元高斯找到所有特征的均值,以及所有特征的协方差矩阵(您可以为此使用正常实例)。它使用此信息来识别数据点的“正常程度”。如果分数低于给定阈值,则数据点为异常。您可以为它提供已知的正常数据点和已知的异常来测试它的工作原理。

*您用于测试的正常数据点不应是您用于查找均值和协方差矩阵的正常数据数据点的一部分。