準備需求與資料

oracle MSET 演算法可以偵測早期的失敗徵兆,例如溫度異常和振動設定檔的變更。

為了有效地偵測早期徵兆,資料設定檔必須符合特定準則。準則會在稍後更詳細地加以說明,但是簡短的感應器讀數必須是連續的。時間戳記不是必要的,但感應器讀數必須以嚴格的時間順序排列,且必須全部為數值。此外,訓練資料也應該包含無異常且位於一般作業參數內的感應器讀數。

這些需求表示在將感應器饋送至異常偵測模型之前,您可能需要先處理感應器的原始資料。

服務需求

若要從服務取得有效的結果,您必須準備適當的訓練和測試資料。

訓練和測試資料只能包含時戳和其他數值屬性。資料通常來自感應器和訊號讀數。目前的版本不支援類別欄位。

此服務在高階有三項訓練資料的主要資料品質要求:

  • 訓練資料應為異常且不含極端值。它應該只包含來自一般作業條件的觀察。
  • 訓練資料應涵蓋所有屬性包含完整值範圍的一般業務方案。
  • 資料中的屬性應該正確相關,或屬於相同的系統或資產。如果屬性來自不同系統,建議您採用不同的訓練模式。

偵測資料的屬性應與訓練資料相同。此外,它也應該來自與訓練資料相同的系統或資產。偵測資料可能有異常的資料點。

資料品質

模型訓練和測試資料必須代表多個屬性的值,例如依時間順序記錄的訊號和感應器。

若要建立高品質模型,請確定訓練集中的資料符合下列需求清單。

時戳
時戳資料欄是選擇性的。不過,如果存在,它就必須是表格中的第一個資料欄。
  • 時戳資料欄的標籤必須是 "timestamp",而且全部小寫且不含空格。
  • 時戳必須以遞增順序排序。
  • 不得有重複的時戳。
  • 時戳可以有變動頻率。例如,一小時 50 次監測項目,下小時 200 次監測項目。
  • 如果沒有時戳資料欄,則會假設資料依時間順序排序。
屬性
每個資料列的指定時戳都是單一監測項目。
  • 屬性值必須為數值。對於布林值,請使用 1 表示 True,使用 0 表示 False。
  • 遺漏值在 JSON 檔案中會以 null 表示,在 CSV 檔案中會以空白欄位表示。
  • 每個資料列必須至少有一個未遺漏的屬性。也就是說,您不能有只含時戳的資料列。
  • 資料應至少有三個高度關聯的屬性。
  • 每個屬性名稱必須是唯一的。
  • 屬性數目不能超過 300 個。
教育訓練
若要決定訓練集中應有的資料列數,請將屬性數乘以八。訓練集中至少必須有 40 列。
例如,如果您有 100 個感應器,則資料列數目為 8000。如果您只有 4 個感應器,則資料列數目為 40。
偵測
使用批次處理時,批次中的資料點數目上限為 30,000。資料點數目是訊號數目乘以資料列數目。
例如,如果您有 50 個感測器,則單一批次最多允許 30,000/50 = 600 列。
其他注意事項
如果在未來的某個時間點新增一或多個屬性,則必須使用訓練集中的新屬性重新擷取模型。
訓練期間,「異常偵測服務」會自動刪除判斷為純訊號、單調訊號、低關聯訊號或重複訊號的屬性。刪除的屬性可以出現在偵測資料中,但會被忽略。

資料綱要

「異常偵測服務」接受兩種資料格式: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]
        }
    ]
}