空间异常值检测的工作原理

空间异常值检测工具用于识别点要素中的全局或局部空间异常值。 全局异常值是指远离要素类中所有其他点的点。 局部异常值是指该点距离其相邻点的距离,比局部区域中预期的点密度的距离大。 除了将输入点分类为异常值或非异常值之外,该工具还可以生成带有整个研究区域中的所计算局部异常值因子 (LOF) 的栅格表面,这有助于确定在给定数据空间分布的情况下如何对新观测点进行分类。 此外,该工具可以优化所需参数的选择,例如相邻要素的数目和视为异常值的位置的百分比。

可能的应用

该工具的潜在应用包括以下情景:

  • 维护用于提供空气质量表面插值的空气质量监测站的组织希望找出最孤立的监测器,以判断在哪些地点需要收集补充数据。
  • 献血活动通常会在潜在献血者群体附近举行,从而最大程度缩短每位献血者的出行距离,但是,对于生活在较远位置的重要献血者,可能需要采取进一步的交流和激励措施,以促进自愿献血。 协调员可以识别出可视为空间异常值的这些候选献血者,并发送邮件说明额外的激励措施,以鼓励他们前往较远地点参加献血活动。

全局和局部空间异常值

空间中的异常值被定义为与数据集中其余点的模式相比其位置不典型的点。 在最简单的情况下,这意味着一个点与其余点相距很远,这称为全局异常值。 例如,一个州的急诊室地图可能会将低人口地区的急诊室识别为全局异常值,因为与高人口地区相比,它们之间的距离更大。 但是,有时检测其位置偏离其区域内点模式的点更有意义,这称为局部异常值。 在使用州内急诊室的相同示例的情况下,考虑到全州急诊室密度的变化,局部空间异常值是远离其他急诊室的医院。 这可以识别人口密集地区的急诊室,该急诊室比周围的急诊室为更多人提供服务,从而可以识别出获得紧急护理的机会较少的区域。

下图显示了空间异常值检测的典型结果,其中异常值用橙色表示,非异常值用灰色表示。 右侧显示了全局异常值,左侧显示了华盛顿州一小部分的局部异常值。 在查看全国各地的所有点时,局部点似乎并不是异常值,但它们与局部区域中的局部点集群相距甚远。

全局和局部空间异常值

右侧显示了全局异常值,左侧显示了小型区域的局部异常值。

工具输出

该工具可提供输出要素图层,以突出显示指定为空间异常值的要素。 异常值用橙色表示,非异常值用半透明的灰色表示,这样可以直观地评估非异常值的空间密度。

已识别的空间异常值

要素图层包括两个图表:一个显示异常值和非异常值计数的条形图,以及一个显示 LOF (对于局部异常值)或近邻距离值(对于全局异常值)分布的直方图。

显示异常值计数的条形图提供了异常值的即时计数,并且可以作为从输出分析中选择所有异常值的有效方法。

异常值计数直方图

显示 LOF 或近邻距离值分布的直方图包括平均值以及用于区分异常值和非异常值的阈值。

LOF 值的直方图

此外,如果在输出预测栅格参数中输入一个值,将生成一个输出栅格,以显示研究区域中每个像元的所计算 LOF 或近邻距离值。

输出栅格表面

输出栅格以连续表面形式显示 LOF 值。

检测全局空间异常值

全局异常值比局部异常值更简单。 对于全局异常值检测,异常值是通过计算到其最近相邻要素之一的距离来确定的,称为近邻距离。 默认情况下,使用最近的相邻要素,但可以使用相邻要素的数目参数更改数量。 例如,提供值 3 将计算每个点到第三个最近要素的距离。 相邻要素距离最大的点离它们最近的相邻要素最远,任何相邻要素距离高于某个阈值的点都将被检测为全局异常值。

检测阈值由相邻要素距离的分布和检测灵敏度参数的值决定。 可以使用箱形图通过将多个四分位距(数据中间 50% 的范围)添加到第三个四分位数来可视化阈值。 对于灵敏度选项,第三个四分位数增加了 1 个四分位距。 对于灵敏度,添加了 1.5 个四分位距。 对于灵敏度,添加了 2 个四分位距。 请注意,较高的灵敏度会导致较低的阈值,从而允许将较短的相邻要素距离检测为全局异常值。

全局异常值的箱型图规则

对于相邻要素距离的蓝色箱型图显示了低、中和高灵敏度的阈值。

检测局部空间异常值

识别异常或偏远位置通常比识别典型或聚类位置更为重要。 以调查潜在的欺诈性金融交易为例,这些交易通常出现在与典型交易空间模式不同的异常位置。

尽管存在此类需求,但大多数尝试识别异常值的方法都侧重于先识别聚类,然后将其余要素用作空间异常值的推论。 例如,基于密度的聚类工具擅长使用各种方法来定义和识别空间聚类,但其异常值的识别则归为不满足聚类标准的要素,即在二进制方法中指定为噪声的要素。 因此,仅使用聚类方法来识别空间异常值至少有两个缺点。 首先,从设计的角度来说,聚类方法专注于定义和识别聚类,而不是异常值。 其次,异常值的指定通常以二进制方式进行,并未将容差或关于观测点异常值的量化水平考虑在内。

局部异常值因子 (LOF) 专注于识别异常值,并提供关于要素偏远情况的测量方法,从而能够解决这些缺点。 此外,此方法使用局部密度模式来比较要素邻域的密度与其附近其他要素邻域的密度。 这样,您可以区分整体异常值(在整个研究区域范围内的异常点)和局部异常值(在紧邻范围内的异常点)。 专注于局部异常值有助于发现需要更深入研究的更复杂的局部现象,例如前文提到的交易历史记录情景。

定义检测局部空间异常值的标准

要使用工具测量和识别空间异常值,需要为每个要素评估相邻要素的数目参数,以及研究区域中视为异常值的位置的百分比参数的值;在确定 LOF 计算中的邻域大小以及指定异常值和非异常值的阈值时,这些标准非常重要。

  • 相邻要素的数目参数可为每个要素建立邻域。 LOF 计算使用该邻域来计算可达距离和局部可达密度,这构成了比较的基础,以根据其紧邻区域的要素来估计要素在空间上的距离是否偏远。
  • 视为异常值的位置的百分比参数可确定将要素指定为异常值或非异常值的阈值。 此阈值针对输入数据中的所有要素使用所计算 LOF 值,从而建立具有最高 LOF 值(被指定为异常值)的要素数量。

建议尽可能使用域知识帮助您设置这些参数的值,例如以下示例:

  • 运输工程师可能具有固有域知识,了解交叉路口的几次崩溃表明存在系统性安全问题,并且可以使用该值作为检测空间异常值时评估的相邻要素的数目。
  • 献血活动协调员会列出潜在的献血志愿者。 协调员会安排预算鼓励 10% 的最偏远志愿者,以补偿他们到达献血站点的出行时间。协调员会使用 10% 视为异常值的位置的百分比来帮助规划献血活动的站点和激励措施。

此外,如果相邻要素的数目视为异常值的位置的百分比参数值是未知的,或者您希望探索这些参数的数据驱动值,该工具可以使用数据空间分布来进行参数值搜索。 有关此方法的详细信息,下面的数据驱动参数选择部分提供了详细说明。

局部异常值因子

局部异常值因子计算是识别和描述空间异常值的主要机制。 此过程包括四个主要步骤:建立邻域、找到可达距离、计算局部可达密度以及计算局部异常值因子本身。 以下部分会对每个步骤进行描述。

建立邻域并找到可达距离

使用指定的最小要素数量为每个位置建立一个局部邻域。 这种方法通常称为“K 最近邻域”,其中 K 对应于当前分析要素附近的指定最小要素数量。 例如,下图显示了要素 A 的场景,其中相邻要素数目 k 等于 4。

要素 A 的邻域

要素 1、2、3 和 4 构成要素 A 的邻域,现在将其视为 B。

建立要素的邻域后,可达距离对应于 A 与 B 之间的距离和 B 与“K 最近邻域”之间距离中的较大者

可达距离公式

下图显示了在 k = 4 的情况下 A 点的可达距离。

要素 A 的可达距离

同样,每个要素都有一个由 K 最近邻域定义的可达距离。

查找局部可达密度

找到每个要素的可达距离后,可以计算出该要素邻域中所有要素的可达距离的平均值。 该平均值将用于确定局部可达密度,以便可以测量要素邻域的空间密度。 局部可达密度的计算对应于要素邻域中所有要素的平均可达距离的倒数。

局部可达密度公式

将局部可达密度概念化的另一种方法是计算属于要素 A 邻域的所有要素 B1 至 B4 的可达距离,如下图所示。

每个相邻要素的可达距离

然后将总距离除以要素数量(在本例中为 4),然后取倒数(用 1 除以该总和)。

您可以进一步概念化局部可达密度,随着要素的平均可达距离增加,局部可达密度会减小。 因此,随着要素的平均可达距离减小,局部可达密度会增大。

局部可达密度比较

计算局部异常值因子

在为所有要素计算局部可达密度之后,局部异常值因子计算的最后一步是计算某个要素的局部可达密度与其每个邻域的局部可达密度的比率。 这些比率的平均值为局部异常值因子。

局部异常值因子公式

要概念化描述这将如何帮助检测某个要素是否为空间异常值,我们可以考虑随着要素的局部可达密度减小(换句话说,要素的邻域变得稀疏)和其相邻要素的局部可达密度增大(换句话说,要素的邻域更加密集),局部异常值因子会增大:要素变得更加偏远,原因在于其空间密度较低,而其邻近要素的空间密度较高。

在为所有要素计算出局部异常值因子后,该工具将使用指定为异常值的位置的百分比参数值将要素指定为异常值和非异常值。 因此,在定义和解释分析结果时,需遵循重要标准选择合适的百分比。

数据驱动参数选择

相邻要素的数目视为异常值的位置的百分比参数对 LOF 计算结果和检测到的空间异常值有重要影响。 虽然建议根据域知识进行这些参数值的选择,但是必须承认,并非每个分析问题都可以针对这些标准提供明确的值。

如果在执行分析之前,相邻要素的数目或视为异常值的位置的百分比逻辑值是未知的,或者您希望评估数据驱动结果,则该工具可以基于输入要素的空间分布自动搜索适当的参数值。 为此,该工具通过比较相邻要素的数目参数 (ķ) 和视为异常值的位置的百分比(视为 c)(可转换为多个视为异常值的位置搜索参数(视为 n))的组合来执行搜索。

对于每个参数值对 ([(c1, k1), (c2, k2), …]),系统将计算局部异常值因子。 得出的 LOF 值按照从最高到最低的顺序排序,并且系统会使用 t 统计量 Tci,kj 将前 n 个异常值的平均值 log(LOF) 与之后的 n 个非异常值(第二高的 LOF)的平均值 log(LOF) 进行比较。

通过优化网格搜索找到最佳相邻要素的数目和 LOF 阈值。

给定每个 c,查找最佳的 kTc1,k2Tc2,k3Tc3,k2。 然后查找其中最佳的 ck

继续操作前,请牢记以下内容:

  • 提供 c 的值之后,该工具可以识别将 t 统计量的显著性最大化的 k。 即,使异常值组和非异常值组之间的 LOF 差异最大化的最近邻域值。
  • 该工具可识别调整 n 的大小后,将 t 统计量最大化的 c 值。

异常值与非异常值的比较。

在异常值和非异常值组的平均值之间执行 t 检验。

在根据输入点的数量确定的 kc 值域中进行搜索,在工具执行后,工具为所选参数值做出的每个决策都将以消息的形式报告。

注:

对于包含许多要素的输入数据集,该工具仅验证相邻要素数目和 LOF 阈值的一部分。

对输出的考虑和解释

解释此工具的输出时,需要牢记一些重要注意事项。

  • 为输入数据集计算的 LOF 值不能与为其他数据集计算的 LOF 值进行比较。 LOF 计算取决于数据集中输入要素的空间分布;因此,单独数据集中的任何差异都将导致所计算局部可达密度和 LOF 值不同。
  • 对于输出要素中的一个点和输出预测栅格中与该点重合的像元,所计算 LOF 结果可能会有所不同。 产生这种差异的原因是,该点的邻域包括其附近的相邻要素,而不包括其本身;但是,与该点重合的栅格像元将该点作为其相邻要素之一包括在内。
  • 对于所提交的视为异常值的位置的百分比参数,值的微小差异可能会导致所输出视为异常值的位置的百分比相同。 如果要素的空间分布相似,导致多个要素的 LOF 值相同,并且即使百分比相差很小时,也会建立相同的 LOF 阈值,就会出现这种情况。
    • 假设某个简单数据集包含 10 个要素,这些要素的 LOF 计算得出以下 LOF 值:[0, 1, 2, 3, 4, 5, 9, 9, 9, 9]。 在此示例中,如果视为异常值的位置的百分比值为 10%,则会导致选择相对于 LOF 阈值 9 的前 10% 的 LOF 值。 同样,如果视为异常值的位置的百分比值为 40%,尽管仍然会将 LOF 阈值设置为 9,还是会导致选择前 40% 的 LOF 值。 因此,对于 10% 到 40% 的百分比,被指定为异常值的异常值输出计数是相同的。

其他参考

有关局部异常值因子和优化参数的详细信息,请参阅以下参考资料:

  • Breunig, M. M., Kriegel, H. P., Ng, R. T., Sander, J. (2000). "LOF: identifying density-based local outliers." Proceedings of the 2000 ACM SIGMOD international conference on Management of data. (pp. 93-104).
  • Xu, Z., Kakde, D., Chaudhuri, A. (2019). "Automatic Hyperparameter Tuning Method for Local Outlier Factor, with Applications to Anomaly Detection." 2019 IEEE International Conference on Big Data (pp. 4201-4207)