高维数据中异常值检测的挑战是什么?
高维数据中异常值检测的各种挑战如下:
异常值的解释——它们不仅必须能够识别异常值,还必须支持对异常值的解释。因为高维数据集包含多个特征(或维度),所以识别异常值而不支持某些解释来解释为什么它们是异常值并没有多大帮助。
异常值的解释可以从显示异常值的特定子空间或对对象“异常性”的评估中出现。这种解释可以帮助用户了解异常值的可能含义和重要性。
数据稀疏性——这些方法必须能够管理高维区域的稀疏性。随着维数的增加,对象之间的距离变得严重地受噪声支配。因此,高维区域中的数据是稀疏的。
数据子空间——它们应该适当地建模异常值,例如,适应表示异常值的子空间并获取信息的局部行为。使用针对某些子空间的固定距离阈值来识别异常值并不是一个好主意,因为随着维数的增加,两个对象之间的距离单调增加。
关于维数的可扩展性——随着维数的增加,多个子空间呈指数级增长。对搜索空间(包括一些可能的子空间)进行详尽的组合分析不是一种可扩展的方法。
高维数据异常值检测方法可以分为三种主要方法:
扩展传统的异常值检测——一种高维数据异常值检测方法改进了传统的异常值检测方法。它需要传统的基于邻近度的异常值模型。为了克服高维空间中邻近度测量的恶化,它需要替代测量或构造子空间并在其中检测异常值。
HilOut 算法是这种方法的一个实例。HilOut 发现基于距离的异常值,但在异常值检测中需要距离的秩而不是绝对距离。特别是,对于每个对象 o,HilOut 发现 o 的 k 个最近邻,表示为 nn1(o),...,nnk(o),其中 k 是一个软件相关的参数。
对象 o 的权重表示为
$$\mathrm{w(o) = \displaystyle\sum\limits_{i=1}^k dist(o,nn_{i}(o))}$$
在子空间中查找异常值——高维数据异常值检测的另一种方法是在多个子空间中查找异常值。一个特别的优点是,如果一个对象在一个低得多的维度的子空间中被发现是一个异常值,则该子空间支持执行为什么以及该对象在多大程度上是一个异常值的关键数据。由于维数众多,这在具有高维数据的高维数据应用中非常有价值。
建模高维异常值——高维数据异常值检测的另一种方法尝试精确地为高维异常值生成新模型。