附录 K:地理位置函数

编辑

地理位置函数用于检测输入数据地理位置的异常。

机器学习功能包括以下地理位置函数:lat_long

您无法为包含地理位置函数的异常检测作业创建预测。您也无法向使用地理位置函数的检测器添加带有条件的规则。

Lat_long

编辑

lat_long 函数用于检测输入数据地理位置的异常。

此函数支持以下属性:

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

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

示例 1:使用 lat_long 函数分析交易。

PUT _ml/anomaly_detectors/example1
{
  "analysis_config": {
    "detectors": [{
      "function" : "lat_long",
      "field_name" : "transaction_coordinates",
      "by_field_name" : "credit_card_number"
    }]
  },
  "data_description": {
    "time_field":"timestamp",
    "time_format": "epoch_ms"
  }
}

如果在异常检测作业的检测器中使用此 lat_long 函数,则它会检测信用卡交易的地理位置对于特定客户的信用卡而言不寻常的异常。异常可能表示欺诈。

“典型”值表示先前观察到的位置的集群的质心,该质心最接近当时“实际”位置。例如,可能有一个靠近某人住所的质心,该质心与当地杂货店和餐馆的集群相关联,还有一个靠近某人工作地点的质心,该质心与午餐和咖啡店的集群相关联。

您提供的 field_name 必须是包含两个逗号分隔的数字的单个字符串,格式为 纬度,经度、一个 geo_point 字段、一个包含点值的 geo_shape 字段或一个 geo_centroid 聚合。纬度经度必须在 -180 到 180 的范围内,并表示地球表面的一个点。

例如,JSON 数据可能包含以下交易坐标:

{
  "time": 1460464275,
  "transaction_coordinates": "40.7,-74.0",
  "credit_card_number": "1234123412341234"
}

在 Elasticsearch 中,位置数据很可能存储在 geo_point 字段中。有关更多信息,请参阅geo_point 数据类型。机器学习功能原生支持此数据类型。具体来说,当从 geo_point 字段提取数据时,数据源会在发送到异常检测作业之前将数据转换为适当的 lat,lon 字符串格式。

有关更多信息,请参阅 使用运行时字段更改数据源中的数据