Anomaly Detection Service – 示例应用¶
在此示例中,必须监视由 asset 表示的压缩机。压缩机具有不同的工作模式,例如高压、低压和增压。如果压缩机未正常运行,则触发通知。例如,压力上升时温度没有上升到相应的程度。使用 Anomaly Detection Service,应训练检测器以检测 asset 的异常行为。之后,此检测器将应用于此类型的所有 assets。
准备工作¶
-
使用提供的内容创建下列文件,以实现简单的 HTML/js 示例应用:
- index.html,用于设置页面布局
- main.css,用于设置页面风格
- main.js,提供调用模型训练、模型推理和硬编码测试数据的方法
-
创建一个空的 Staticfile 和一个空的 manifest 文件,使文件夹外观如图所示:
-
使用以下内容填充 manifest 文件:
manifest.yml
applications: - name: htmltest instances: 1 host: htmltest path: ./ memory: 64m
-
按照运行 Cloud Foundry 应用中的说明将示例应用部署到 Cloud Foundry。确保为其分配
mdsp:core:analytics.user
角色。
训练阶段¶
训练数据¶
在 main.js 中以 JSON 格式数据集的形式提供了相应的训练数据,该数据包含在 1 Hz 获得的 397 个测量值。通过时间戳、温度记录和压力记录对每个测量值进行描述如下:
{"_time" :"2018-01-11T14:30:00.000Z", "temperature" :"1.25", "pressure" :"2.848605577689243" },
触发训练¶
通过设置 DBSCAN 参数触发训练阶段:选择 Euclidean
作为距离测量算法,并将最小群集大小设置为 4,将 Epsilon 值设置为 0.5。如果训练成功,则返回新创建的模型的 ID。Model Management Service 适用于模型存储,并自动将模型的过期日期设置为 14 天。可更改此参数。
评分阶段¶
评分数据¶
在 main.js 中以 JSON 格式数据集的形式提供了相应的评分数据,该数据包含 40 个与训练数据频率和特征相同的测量值。
触发评分¶
该模型现在可用于评估新测量值(训练数据除外)是否异常。Anomaly Detection Service 输出一个带有时间戳且可能被视为异常的异常值列表:
{'_time':'2018-01-11T14:36:25Z', 'anomalyExtent':0.2659295810254081},
在下图中,训练数据和测试数据被绘制为 2D 点,其中特征 1 和特征 2 分别表示温度和压力。红点是异常值。其大小代表了异常可能性。一个点离群集边界越远,它就越有可能是异常。