异常检测与监督学习

Jun*_*aid 3 machine-learning supervised-learning

我有属于正类的非常小的数据,而有来自负类的大量数据。据教授。Andrew Ng(异常检测与监督学习),由于数据高度不对称,我应该使用异常检测代替监督学习。

如果我错了,请指正我,但是两种技术对我来说都是相同的,即在(有监督的)异常检测和标准的有监督的学习中,我们使用正常样本和异常样本来训练数据并测试未知数据。有什么区别吗?

我是否应该执行负类的欠采样或正类的过采样以获取相同大小的两个类型数据?它会影响整体准确性吗?

Sai*_*mli 5

实际上,在监督学习中,您将数据集标记为(例如,好,坏),并且在训练模型时传递了标记的值,以便它学习将“好”与“坏”结果区分开的参数。

在异常检测中,它是无监督的,因为您不会传递任何标记的值。您要做的是仅使用“非异常”数据进行训练。然后,您选择epsilon值并使用数值(例如F1得分)进行评估,以便您的模型将获得真实正值的良好平衡。

关于尝试过采样/欠采样以防止数据偏斜,有两件事。

  1. Ng教授提到了这样的情况,例如,如果您的肯定类别仅为10k或100k中的10,那么您就需要使用异常检测,因为您的数据高度不对称。
  2. 如果您通常知道什么是“不良”价值,那么有监督的学习才有意义。如果您只知道什么是“正常” /“好”,但每次的“坏”值确实可能大不相同,那么这是进行异常检测的一个好案例。


0_0*_*0_0 3

在异常检测中,您可以根据得到良好支持的数据部分确定模型参数(正如安德鲁所解释的)。由于您的负类有很多实例,您将使用这些数据进行“学习”。核密度估计或 GMM 是通常使用的方法的示例。因此,可以学习“正常”模型,并且可以使用阈值来检测相对于派生模型被认为异常的实例。这种方法与传统监督学习的区别在于,您仅使用一部分数据(在您的例子中为负类)进行训练。您可能希望在训练后您的阳性实例被识别为异常。

至于你的第二个问题,对负类进行欠采样会导致信息丢失,而对正类进行过采样不会增加信息。我不认为走这条路是可取的。