一級支援向量機器
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
建立一級支援向量機器模型以便進行異常偵測
類別: 異常偵測
模組概觀
本文說明如何使用機器學習 Studio (傳統) 中的「單一類別」支援向量模型模組,來建立異常偵測模型。
如果您有許多「正常」的資料,而不是您想要偵測的異常狀況,則此模組特別有用。 例如,如果您需要偵測詐騙交易,您可能沒有許多詐騙範例可用於定型一般分類模型,但您可能會有許多良好交易的範例。
您可以使用 [ 一級支援向量模型 ] 模組來建立模型,然後使用 定型異常偵測模型來定型模型。 您用於定型的資料集可以包含全部或大部分的一般案例。
然後,您可以套用不同的度量來識別潛在的異常狀況。 例如,您可以使用大型交易的大型資料集來識別可能代表詐騙交易的案例。
深入瞭解單一類別 SVM
支援向量機器 (SVM) 是監督式學習模型,可分析資料和辨識模式,還可用於分類和迴歸工作。
一般而言,SVM 演算法會提供一組標示為屬於兩個類別之一的定型範例。 SVM 模型是根據定型範例點分成不同的分類,盡可能以最寬的間隔為單位,而 penalizing 的定型樣本則落在錯誤的側邊。 然後,SVM 模型會將點指派給間隙的一端或另一端,藉以進行預測。
有時會使用超取樣來複寫現有的範例,讓您可以建立兩個類別的模型,但無法從有限的範例預測所有新的詐騙或系統錯誤模式。 此外,收集有限範例所費不貲。
因此,在一個類別 SVM 中,支援向量模型會針對只有一個類別的資料(也就是「標準」類別)進行定型。 它會推斷一般案例的屬性,而從這些屬性可以預測哪些範例和一般範例不同。 這對異常偵測很有説明,因為定型範例的水源不足情形是定義異常的情況:亦即,通常會有很少的網路入侵、詐騙或其他異常行為的範例。
如需詳細資訊,包括基本研究的連結,請參閱 技術 提示一節。
注意
一級支援向量模型模組會建立核心 SVM 模型,這表示它沒有很高的擴充性。 如果定型時間有限,或您的資料太多,您可以使用其他方法來進行異常偵測器,例如以 PCA 為基礎的異常偵測。
如何設定 One-Class SVM
將 一級支援向量模型 模組新增至您在 Studio (傳統) 中的實驗。 您可以在 [異常偵測] 類別中的 [機器學習初始化] 下找到此模組。
按兩下 [ 一級支援向量模型 ] 模組以開啟 [ 屬性 ] 窗格。
針對 [ 建立定型模式],選取一個選項來指出如何訓練模型:
單一參數:如果您知道要如何設定模型,請使用此選項,並提供一組特定值做為引數。
參數範圍:如果您不確定最佳參數,且想要執行參數清除以找出最佳設定,請使用此選項。
η:輸入代表極端值分數上限的值。 此參數對應于 本白皮書中所述的 nu 屬性。 此屬性可讓您控制極端值和一般案例之間的取捨。
ε (epsilon) :輸入要用來作為停止容錯的值。 停止容錯,會影響優化模型時所使用的反覆運算次數,並取決於停止準則的值。 當超過此值時,定型器會停止反覆運算方案。
連線訓練資料集,以及其中一個訓練課程模組:
執行實驗。
結果
模組會傳回已定型的異常偵測模型。 您可以將模型儲存在工作區中,也可以連接「 評分模型 」模組,並使用定型的模型來偵測可能的異常。
如果您使用參數清除來定型模型,請記下在設定模型以用於生產環境時所要使用的最佳參數設定。
範例
如需有關如何在異常偵測中使用此模組的範例,請參閱 Azure AI 資源庫:
- 異常偵測:信用風險:此範例說明如何使用參數清除來尋找最佳模型,以尋找資料中的極端值。 然後,它會將該模型套用到新的資料,以識別可能代表詐騙的風險交易,並比較兩個不同的異常偵測模型。
技術說明
來自 單一類別 SVM 的預測是可能未系結的 uncalibrated 分數。 如 Cortana 智慧資源庫中的範例所示,如果您要根據不同的演算法來比較模型,請務必標準化分數。
參考
此實作為包裝支援向量機器(名為 libsvm)的程式庫。 以下是 Schӧlkopf et 的一般理論 libsvm
,也就是一種支援向量機器的方法,在這些檔中有說明。
模組參數
名稱 | 類型 | 範圍 | 選用 | 描述 | 預設 |
---|---|---|---|---|---|
建立訓練模式 | 建立訓練模式 | 清單:單一參數 | 參數範圍 | 必要 | 單一參數 | 指定學習模組選項。 使用 [單一參數] 選項以手動指定所有值。 使用 [參數範圍] 以掃掠可微調的參數。 |
nu | Float | >=double.Epsilon | 模式:單一參數 | 0.1 | 此參數 (以希臘文字母 nu 表示,) 決定極端值的分數與支援向量數目之間的取捨。 |
epsilon | Float | >=double.Epsilon | 模式:單一參數 | 0.001 | 指定停止容錯。 |
psnu | ParameterRangeSettings | [0.001; 1.0] | 模式:參數範圍 | 0.001;0.01;0.1 | 指定極端值的分數與支援向量數目之間的取捨範圍。 |
psEpsilon | ParameterRangeSettings | [1e-6;1.0] | 模式:參數範圍 | 0.001;0.01;0.1 | 指定用於停止容錯的範圍。 |
輸出
名稱 | 類型 | 描述 |
---|---|---|
未定型的模型 | ILearner 介面 | 未定型的異常偵測模型 |