附录 N:稀有函数

编辑

稀有函数检测在时间上或在总体中很少出现的值。

rare 分析根据不同的稀有值的数量检测异常。这与 freq_rare 不同,后者根据稀有值出现的次数(频率)检测异常。

  • rarefreq_rare 函数不应与 exclude_frequent 结合使用。
  • 您无法为包含 rarefreq_rare 函数的异常检测作业创建预测。
  • 您无法将带有条件的规则添加到使用 rarefreq_rare 函数的检测器。
  • 在查找稀有事件时,建议使用较短的存储桶跨度(例如,小于 1 小时)。这些函数会建模是否在存储桶中至少发生一次事件。使用较长的存储桶跨度,实体更有可能在存储桶中被看到,因此它们显得不那么稀有。选择理想的存储桶跨度取决于数据的特征,较短的存储桶跨度通常以分钟而不是小时来衡量。
  • 为了对稀有数据进行建模,典型数据需要至少 20 个存储桶的学习期。

机器学习功能包括以下稀有函数

稀有

编辑

rare 函数检测在时间上或在总体中很少出现的值。它根据不同的稀有值的数量检测异常。

此函数支持以下属性

  • by_field_name (必需)
  • over_field_name (可选)
  • partition_field_name (可选)

有关这些属性的更多信息,请参阅创建异常检测作业 API

示例 1:使用 rare 函数分析状态代码。

{
  "function" : "rare",
  "by_field_name" : "status"
}

如果在异常检测作业的检测器中使用此 rare 函数,它会检测在时间上稀有的值。它会建模随时间发生的状态代码,并检测与过去相比何时出现稀有状态代码。例如,您可以检测 Web 访问日志中以前从未(或很少)发生过的状态代码。

示例 2:使用 rare 函数分析总体中的状态代码。

{
  "function" : "rare",
  "by_field_name" : "status",
  "over_field_name" : "clientip"
}

如果在异常检测作业的检测器中使用此 rare 函数,它会检测在总体中稀有的值。它会建模发生的状态代码和客户端 IP 交互。它将稀有状态代码定义为与总体相比,很少有客户端 IP 值发生的状态代码。它会检测与总体相比,经历一个或多个不同稀有状态代码的客户端 IP 值。例如,在 Web 访问日志中,与总体相比,经历不同稀有状态代码数量最多的 clientip 被认为是高度异常的。此分析基于不同的状态代码值的数量,而不是出现次数。

要将状态代码定义为稀有,机器学习功能会查看发生的不同状态代码的数量,而不是状态代码发生的次数。如果单个客户端 IP 经历单个唯一状态代码,则这是稀有的,即使它在每个存储桶中都为该客户端 IP 发生也是如此。

Freq_rare

编辑

freq_rare 函数检测在总体中很少出现的值。它根据稀有值出现的次数(频率)检测异常。

此函数支持以下属性

  • by_field_name (必需)
  • over_field_name (必需)
  • partition_field_name (可选)

有关这些属性的更多信息,请参阅创建异常检测作业 API

示例 3:使用 freq_rare 函数分析总体中的 URI 值。

{
  "function" : "freq_rare",
  "by_field_name" : "uri",
  "over_field_name" : "clientip"
}

如果在异常检测作业的检测器中使用此 freq_rare 函数,它会检测在总体中频繁稀有的值。它会建模发生的 URI 路径和客户端 IP 交互。它将稀有 URI 路径定义为与总体相比,很少有客户端 IP 值访问的 URI 路径。它会检测与总体相比,与稀有 URI 路径发生许多交互的客户端 IP 值。例如,在 Web 访问日志中,与总体相比,多次访问一个或多个稀有 URI 路径的客户端 IP 被认为是高度异常的。此分析基于与稀有 URI 路径的交互次数,而不是不同 URI 路径值的数量。

将 URI 路径定义为稀有与您在上面的状态代码案例中看到的方式相同:分析考虑发生的不同值的数量,而不是 URI 路径发生的次数。如果单个客户端 IP 访问单个唯一 URI 路径,则这是稀有的,即使它在每个存储桶中都为该客户端 IP 发生也是如此。