5

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

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

我应该只对负类进行欠采样还是对正类进行过采样以获得相同大小的两种类型数据?它会影响整体准确性吗?

4

2 回答 2

6

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

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

关于尝试过采样/过采样以使您的数据不偏斜,有两件事。

  1. Ng 教授提到,如果你的正类只有 10 万分之 10 或 10 万,那么你需要使用异常检测,因为你的数据是高度倾斜的。
  2. 如果您通常知道什么是“坏”价值观,那么监督学习是有意义的。如果您只知道什么是“正常”/“好”,但您的“坏”值每次都可能非常不同,那么这就是异常检测的好案例。
于 2016-04-06T00:45:39.573 回答
3

在异常检测中,您将从得到良好支持的部分数据中确定模型参数(正如 Andrew 解释的那样)。由于您的负类有很多实例,您可以将这些数据用于“学习”。核密度估计或 GMM 是通常使用的方法的示例。因此,可以学习“正常”模型,并且可以使用阈值处理来检测相对于您的派生模型被认为异常的实例。这种方法与传统的监督学习之间的区别在于,您只使用一部分数据(在您的案例中为负类)进行训练。您会期望您的正面实例在训练后被识别为异常。

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

于 2014-04-27T21:59:04.007 回答