附录 P:时间函数

编辑

时间函数检测在异常时间(一天中的时间或一周中的时间)发生的事件。这些函数可用于查找异常的行为模式,通常与可疑用户活动相关联。

机器学习功能包括以下时间函数

  • 您无法为包含时间函数的异常检测作业创建预测。
  • time_of_day 函数无法识别不同日期(例如工作日和周末)之间的差异。在对不同日期建模时,请使用 time_of_week 函数。通常,time_of_week 函数更适合于对人员行为而不是机器行为进行建模,因为人们的行为会根据一周中的日期而有所不同。
  • 执行 time_of_daytime_of_week 分析时,建议使用较短的桶跨度(例如 10 分钟)。正在建模的事件时间不受桶跨度的影响,但较短的桶跨度可以更快地提醒异常事件。
  • 异常事件的标记是根据数据的先前模式进行的,而不是根据我们基于人类经验认为的异常情况。因此,如果事件通常在凌晨 3 点到 5 点之间发生,则在下午 3 点发生的事件将被标记为异常。
  • 当夏令时开始或结束时,常规事件可能会被标记为异常。这种情况发生是因为事件的实际时间(相对于 UTC 基线测量)发生了变化。这种情况被视为行为的阶跃变化,新时间将很快被学习。

Time_of_day

编辑

time_of_day 函数检测何时发生超出正常使用模式的事件。例如,它检测深夜的异常活动。

该函数期望每日行为相似。如果您期望数据的行为在星期六与星期三相比有所不同,则 time_of_week 函数更合适。

此函数支持以下属性

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

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

示例 1:使用 time_of_day 函数分析事件。

{
  "function" : "time_of_day",
  "by_field_name" : "process"
}

如果您在异常检测作业的检测器中使用此 time_of_day 函数,它会对每个进程的事件在一天中的发生时间进行建模。它检测何时发生某个进程的事件,该事件与过去的行为相比处于一天中的异常时间。

Time_of_week

编辑

time_of_week 函数检测何时发生超出正常使用模式的事件。例如,它检测周末的登录事件。

time_of_week 函数对以纪元秒为单位的时间进行建模,并取模一周的秒数。这意味着 typicalactual 值是在 1970 年 1 月 1 日(星期四)UTC 之后整周的秒数。例如,值 475 是 UTC 时间星期四午夜后 475 秒。

此函数支持以下属性

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

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

示例 2:使用 time_of_week 函数分析事件。

{
  "function" : "time_of_week",
  "by_field_name" : "eventcode",
  "over_field_name" : "workstation"
}

如果您在异常检测作业的检测器中使用此 time_of_week 函数,它会对每个 eventcode 的事件在一周中的发生时间进行建模。它检测工作站事件何时在一周中的异常时间段内发生,与其他工作站相比。它检测特定工作站的事件超出正常使用模式。