异常值检测的挑战是什么?
异常值是指与其余对象本质上存在偏差的数据对象,就好像它是由不同的结构生成的。为方便讲解,可以将非异常值数据对象定义为“正常”或预期信息。类似地,可以将异常值定义为“异常”数据。
异常值是在给定类别或集群中无法组合的数据组件。这些数据对象的行为与不同数据对象的普遍行为存在差异。对这类数据的分析对于挖掘知识可能非常重要。
异常值检测的各种挑战如下:
有效地建模正常对象和异常值 − 异常值检测很大程度上依赖于对正常(非异常值)对象和异常值的建模。这在一定程度上是因为在一个应用程序中枚举一些可用的正常行为是复杂的。
数据正常性和异常性(异常值)之间的界限并不明确。相反,可能存在广泛的灰色区域。因此,虽然各种异常值检测技术将输入信息集中的每个对象都标记为“正常”或“异常值”,但其他方法会为每个对象分配一个分数,计算该对象的“异常值”程度。
特定于应用程序的异常值检测 − 选择相似性/距离度量和定义数据对象的关联模型对于异常值检测至关重要。不幸的是,这些选择依赖于软件。一些应用程序可能有多种需求。
处理异常值检测中的噪声 − 异常值不同于噪声。众所周知,实际信息集的质量可能较差。噪声不可避免地存在于在多个应用程序中收集的数据中。噪声可以表现为属性值的偏差或表现为缺失值。
低数据质量和噪声的存在对异常值检测提出了巨大的挑战。它们会误导信息,模糊正常对象和异常值之间的差异。此外,噪声和缺失信息可能会“隐藏”异常值并降低异常值检测的有效性;异常值可能会“伪装”成噪声点,而异常值检测方法可能会错误地将噪声点识别为异常值。
可理解性 − 在某些应用程序方法中,用户可能不仅需要检测异常值,还需要了解为什么检测到的对象是异常值。为了结合可理解性要求,异常值检测技术必须支持某种程度的检测原因解释。
例如,可以使用统计方法来验证一个对象是异常值的程度取决于该对象是由生成大多数记录的相同结构生成的可能性。可能性越小,该对象是由相同结构生成的可能性越低,该对象是异常值的可能性就越大。