检测地理数据中的异常位置
编辑检测地理数据中的异常位置
编辑如果您的数据包含地理字段,您可以使用机器学习功能来检测异常行为,例如在不寻常位置发生的信用卡交易或具有不寻常来源位置的 Web 请求。
先决条件
编辑要运行此类异常检测作业,您必须设置机器学习功能。您还必须具有包含空间数据类型的时间序列数据。特别是,您必须具有
- 两个以逗号分隔的数字,格式为
纬度,经度
, geo_point
字段,- 包含点值的
geo_shape
字段,或 geo_centroid
聚合
纬度和经度必须在 -180 到 180 的范围内,并表示地球表面上的一个点。
此示例使用示例电子商务订单和示例 Web 日志数据集。有关详细信息,请参阅添加示例数据。
浏览您的地理数据
编辑要从机器学习分析中获得最佳结果,您必须了解您的数据。您可以使用机器学习应用程序中的数据可视化器来实现此目的。搜索特定字段或字段类型,例如示例数据集中的 geo-point 字段。您可以查看在特定时间段和样本大小内包含这些字段的文档数量。您还可以查看不同值的数量、示例值列表并在地图上预览它们。例如
创建异常检测作业
编辑在创建此类作业之前,需要考虑一些限制
- 您无法为包含地理功能的异常检测作业创建预测。
- 您无法向使用地理功能的检测器添加带有条件的自定义规则。
如果这些限制可以接受,请尝试创建一个使用 lat_long
函数来分析您自己的数据或示例数据集的异常检测作业。
要创建使用 lat_long
函数的异常检测作业,在 Kibana 中,您必须单击机器学习 > 异常检测 > 作业页面上的创建作业,然后选择高级作业向导。或者,使用创建异常检测作业 API。
例如,创建一个分析示例电子商务订单数据集的作业,以查找相对于每个客户(user
ID)的过去行为而言,具有不寻常坐标(geoip.location
值)的订单
API 示例
PUT _ml/anomaly_detectors/ecommerce-geo { "analysis_config" : { "bucket_span":"15m", "detectors": [ { "detector_description": "Unusual coordinates by user", "function": "lat_long", "field_name": "geoip.location", "by_field_name": "user" } ], "influencers": [ "geoip.country_iso_code", "day_of_week", "category.keyword" ] }, "data_description" : { "time_field": "order_date" }, "datafeed_config":{ "datafeed_id": "datafeed-ecommerce-geo", "indices": ["kibana_sample_data_ecommerce"], "query": { "bool": { "must": [ { "match_all": {} } ] } } } } POST _ml/anomaly_detectors/ecommerce-geo/_open POST _ml/datafeeds/datafeed-ecommerce-geo/_start { "end": "2022-03-22T23:00:00Z" }
或者,创建一个分析示例 Web 日志数据集的作业,以检测具有不寻常坐标(geo.coordinates
值)或异常高的传输数据总和(bytes
值)的事件
API 示例
PUT _ml/anomaly_detectors/weblogs-geo { "analysis_config" : { "bucket_span":"15m", "detectors": [ { "detector_description": "Unusual coordinates", "function": "lat_long", "field_name": "geo.coordinates" }, { "function": "high_sum", "field_name": "bytes" } ], "influencers": [ "geo.src", "extension.keyword", "geo.dest" ] }, "data_description" : { "time_field": "timestamp", "time_format": "epoch_ms" }, "datafeed_config":{ "datafeed_id": "datafeed-weblogs-geo", "indices": ["kibana_sample_data_logs"], "query": { "bool": { "must": [ { "match_all": {} } ] } } } } POST _ml/anomaly_detectors/weblogs-geo/_open POST _ml/datafeeds/datafeed-weblogs-geo/_start { "end": "2022-04-15T22:00:00Z" }
分析结果
编辑在异常检测作业处理了一些数据后,您可以在 Kibana 中查看结果。
如果您使用 API 创建作业和数据馈送,则在您按照提示同步必要的已保存对象之前,您无法在 Kibana 中看到它们。
当您在异常浏览器泳道结果中选择包含异常的期间时,您可以看到典型坐标和实际坐标的地图。例如,在电子商务示例数据中,有一个用户具有异常的购物行为
“典型”值表示先前观察到的位置的聚类中心,该聚类中心最接近当时的“实际”位置。例如,可能有一个中心靠近用户的家,另一个中心靠近用户的工作场所,因为有许多记录与这些不同的位置相关联。
同样,在 Web 日志示例数据中,也有传输数据总和异常高且地理坐标异常的时间段
您可以使用主要影响因素值来进一步过滤您的结果,并识别可能的促成因素或行为模式。
您还可以通过单击异常表格中的操作菜单中的在地图中查看,在地图中查看异常。
当您使用自己的数据尝试此类异常检测作业时,可能需要进行一些实验才能找到最佳的存储桶、检测器和影响因素组合,以检测您要寻找的行为类型。
有关异常检测概念的详细信息,请参阅概念。有关可以在异常检测作业中使用的完整功能列表,请参阅功能参考。有关更多异常检测示例,请参阅示例。
向地图添加异常图层
编辑要将异常检测作业的结果集成到地图中,请单击添加图层,然后选择机器学习异常。然后,您必须选择或创建使用 lat_long
函数的异常检测作业。
例如,您可以扩展构建地图以按国家或地区比较指标中的地图示例,以包括一个使用您的 Web 日志异常检测作业的图层