需求和数据准备
oracle MSET 算法可以检测故障的早期症状,例如温度异常和振动配置文件中的更改。
要有效检测早期症状,数据概要必须符合特定标准。稍后将详细介绍这些标准,但简要地说,传感器读数必须是连续的。时间戳并不重要,但是传感器读数必须按严格的时间顺序排列,并且必须是数字。此外,培训数据应包含传感器读数,这些传感器读数没有异常,并且符合正常操作参数。
要求意味着在将数据输入异常检测模型之前,可能需要处理传感器中的原始数据。
服务要求
要获得有效的服务结果,您必须准备适当的培训和测试数据。
培训与测试数据只能包含时间戳和其他数字属性。数据通常来自传感器和信号读数。当前版本不支持分类字段。
在较高级别,该服务对培训数据有三项主要的数据质量要求:
- 培训数据不应异常,也不应有异常值。它应仅包含对正常业务条件的意见。
- 培训数据应涵盖所有属性上包含完整值范围的所有正常业务方案。
- 数据中的属性应该相关或者属于同一系统或资产。如果属性来自不同的系统,我们建议培训单独的模型。
检测数据应具有与培训数据相同的属性。此外,它应该来自与培训数据相同的系统或资产。检测数据可能具有异常数据点。
Data Quality(数据质量)
模型培训和测试数据必须表示按时间顺序记录的多个属性(如信号和传感器)中的值。
要创建高质量的模型,请确保培训集中的数据符合以下要求列表。
- 时间戳
- 时间戳列是可选的。但是,如果存在,它必须是表中的第一列。
- 时间戳列必须具有标签 "timestamp",所有小写均无空格。
- 时间戳必须按升序排序。
- 不能有重复的时间戳。
- 时间戳可以具有可变频率。例如,在一小时内有 50 次观察,在下一个小时内有 200 次观察。
- 如果没有时间戳列,则假定数据按时间顺序排序。
- 属性
- 每行数据都是给定时间戳中的一个观察值。
- 属性值必须是数字。对于布尔值,请使用 1 表示 True,使用 0 表示 False。
- JSON 文件中的
null
表示缺失值, CSV 文件中的字段为空。 - 每行必须至少有一个不缺少的属性。也就是说,不能只有时间戳的行。
- 数据应至少具有三个高度相关的属性。
- 每个属性名称都必须唯一。
- 属性数不应超过 300。
- 培训
- 要确定培训集中应该包含的行数,请将属性数乘以 8。在培训集中至少要有 40 行。
- Detection
- 使用批处理时,批处理中的最大数据点数为 30,000。数据点数是信号数乘以行数。
- 其他注意事项
- 如果将来某个点添加一个或多个属性,则必须使用培训集中的新属性对模型进行重新培训。
数据方案
异常检测服务接受两种数据格式:CSV 和 JSON。
对于 CSV 文件,每列都表示传感器数据。每一行表示与每个传感器在特定时间对应的值。
时间戳值必须采用 ISO 8601 格式。使用尽可能精确的时间避免培训数据重复。
CSV 格式的数据应以逗号分隔的行,第一行作为标题,其他行作为数据。第一列是时间戳列。下面是 CSV 格式的数据示例:
timestamp,sensor1,sensor2,sensor3,sensor4,sensor5
2020-07-13T14:03:46Z,,0.6459,-0.0016,-0.6792,0
2020-07-13T14:04:46Z,0.1756,-0.5364,-0.1524,-0.6792,1
2020-07-13T14:05:46Z,0.4132,-0.029,,0.679,0
注意:
CSV 文件不能包含任何空白行,包括最后一行。以下是相同的数据,但 JSON 格式不同:
{
"requestType": "INLINE",
"signalNames": ["sensor1", "sensor2", "sensor3", "sensor4", "sensor5"],
"data": [{
"timestamp": "2020-07-13T14:03:46Z",
"values": [null, 0.6459, -0.0016, -0.6792, 0]
},
{
"timestamp": "2020-07-13T14:04:46Z",
"values": [0.1756, -0.5364, -0.1524, -0.6792, 1]
},
{
"timestamp": "2020-07-13T14:05:46Z",
"values": [0.4132, -0.029, null, 0.679, 0]
}
]
}