Skip to content

Anomaly Detection Service – 示例应用

在此示例中,必须监视由 asset 表示的压缩机。压缩机具有不同的工作模式,例如高压、低压和增压。如果压缩机未正常运行,则触发通知。例如,压力上升时温度没有上升到相应的程度。使用 Anomaly Detection Service,应训练检测器以检测 asset 的异常行为。之后,此检测器将应用于此类型的所有 assets。

准备工作

  1. 使用提供的内容创建下列文件,以实现简单的 HTML/js 示例应用:

    • index.html,用于设置页面布局
    • main.css,用于设置页面风格
    • main.js,提供调用模型训练、模型推理和硬编码测试数据的方法
  2. 创建一个空的 Staticfile 和一个空的 manifest 文件,使文件夹外观如图所示:

    Folder Structure

  3. 使用以下内容填充 manifest 文件:

    manifest.yml
    applications:
    - name: htmltest
      instances: 1
      host: htmltest
      path: ./
      memory: 64m
    
  4. 按照运行 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 分别表示温度和压力。红点是异常值。其大小代表了异常可能性。一个点离群集边界越远,它就越有可能是异常。

Results


Last update: January 15, 2024