PCA 型異常偵測
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
使用主體元件分析建立異常偵測模型
類別: 異常偵測
模組概觀
本文說明如何在機器學習 Studio (傳統) 中使用以PCA 為基礎的異常偵測模組,根據主體元件分析 (PCA) 建立異常偵測模型。
此課程模組可協助您在很容易從某個類別取得定型資料(例如有效的交易)的情況下建立模型,但很難取得足夠的目標異常樣本。
例如,若要偵測詐騙交易,通常您沒有足夠的詐騙範例來進行訓練,但有很多關於良好交易的範例。 以 PCA 為基礎的異常偵測 模組可解決此問題,方法是分析可用的功能,以判斷構成「正常」類別的內容,並套用距離度量來識別代表異常狀況的案例。 這可讓您使用現有的不平衡資料來定型模型。
進一步了解主成份分析
主體元件分析(通常縮寫為 PCA)是機器學習中已建立的技術。 PCA 常用於探索資料分析,因為它會顯示資料的內部結構,並說明資料中的變異數。
PCA 藉由分析包含多個變數的資料來運作。 它會尋找變數之間的關聯性,並決定最適合擷取結果中差異的值組合。 這些組合的特徵值會用來建立更精簡的特徵空間,稱為主體元件。
針對異常偵測,會分析每個新的輸入,而異常偵測演算法會計算其在特徵向量上的投射,以及標準化的重建錯誤。 此正規化錯誤即為異常分數。 錯誤越高,表示實例越異常。
如需有關 PCA 如何運作的詳細資訊,以及有關異常偵測的執行方式,請參閱下列文章:
主體元件分析的隨機演算法。 Rokhlin、Szlan 和 Tygert
尋找具有隨機性的結構:概率演算法來建立大約的矩陣分解 (PDF 下載) 。 Halko、Martinsson 和 Tropp。
如何設定 PCA 異常偵測
將以 PCA 為基礎的異常偵測 模組新增至您在 Studio (傳統) 中的實驗。 您可以在 [異常偵測] 類別中的 [機器學習、初始化模型] 下找到此模組。
在以 PCA 為基礎的異常偵測模組的 [屬性] 窗格中,按一下 [定型模式]選項,並指出您是否要使用一組特定參數來定型模型,或使用參數清除來尋找最佳參數。
單一參數:如果您知道要如何設定模型,請選取此選項,並提供一組特定值做為引數。
參數範圍:如果您不確定最佳參數,而且想要使用 微調模型超參數 模組來使用參數清除,請選取此選項。 定型器會反復查看您指定的設定範圍,並判斷產生最佳結果的設定組合。
要在 pca 中使用的元件數目( pca 元件的數目範圍):指定您要輸出的輸出功能或元件數目。
使用 PCA 來決定要包含多少個元件是實驗設計的重要部分。 就一般指引而言,您不應包含與變數相同的 PCA 元件數目。 相反地,您應該從一些較少的元件開始,並在符合某些準則之前增加。
如果您不確定最佳值可能是什麼,建議您使用 參數範圍 選項來定型異常偵測模型。
當輸出元件的數目小於資料集中可用的特徵資料行數目時,就會取得最佳結果。
指定隨機 PCA 定型期間要執行的超取樣量。 在異常偵測的問題中,不平衡資料會讓您難以套用標準 PCA 技術。 藉由指定某些超取樣量,您可以增加目標執行個體的數目。
若您指定 1,則不會執行任何超取樣。 若您指定任何大於 1 的值,則會產生額外的樣本以用於定型模型。
有兩個選項,取決於您是否使用參數清除而定:
- 隨機化 PCA 的超取樣參數:輸入單一整數,代表在一般類別上超取樣少數類別的比率。 使用 單一參數 定型方法時 (可用。 )
- 隨機化 PCA 中使用之超取樣參數的範圍:輸入一連串的數位來嘗試,或使用範圍產生器來選取使用滑杆的值。 (只有在使用 參數範圍 定型方法時才可使用。 )
注意
您無法查看 oversampled 資料集。 如需如何搭配使用超取樣與 PCA 的其他詳細資料,請參閱 技術提示。
啟用輸入特徵 mean正規化:選取此選項可將所有輸入功能標準化為零的平均值。 通常建議將 PCA 正規化或調整為零,因為 PCA 的目標是要最大化變數之間的差異。
預設會選取這個選項。 如果已使用不同的方法或小數位數來正規化值,請取消選取此選項。
連線已加上標籤的訓練資料集,以及其中一個訓練課程模組:
執行實驗,或選取模組,然後按一下 [ 執行選取]。
結果
定型完成後,您可以儲存定型的模型,或將它連接到「 評分模型 」模組,以預測異常分數。
若要評估異常偵測模型的結果,需要一些額外的步驟:
確定兩個資料集都有可用的分數資料行
如果您嘗試評估異常偵測模型並收到錯誤:「計分資料集中沒有分數資料行要比較」,這表示您使用的是包含標籤資料行但沒有機率分數的一般評估資料集。 您必須選擇符合異常偵測模型之架構輸出的資料集,其中包括 評分標籤 和 評分 機率資料行。
確定標籤資料行已標示
有時候,與標籤資料行相關聯的中繼資料會在實驗圖形中移除。 如果發生這種情況,當您使用「 評估模型 」模組來比較兩個異常偵測模型的結果時,可能會收到錯誤:「計分資料集中沒有標籤資料行」或「在計分資料集中沒有標籤資料行可進行比較」。
您可以在「評估模型」模組之前加入「編輯中繼資料」模組,以避免此錯誤。 使用資料行選取器選擇 [類別] 資料行,然後在 [ 欄位 ] 下拉式清單中選取 [ 標籤]。
標準化不同模型類型的分數
PCA 異常偵測模型的預測一律位於 [0,1] 範圍內。 相反地,來自 類別 SVM 模組的輸出是可能未系結的 uncalibrated 分數。
因此,如果您要比較以不同演算法為基礎的模型,您必須一律將分數標準化。 請參閱 Azure AI 資源庫中的範例,以取得不同異常偵測模型之間的正規化範例。
範例
如需如何在異常偵測中使用 PCA 的範例,請參閱 Azure AI 資源庫:
- 異常偵測:信用風險:說明如何尋找資料中的極端值。 這個範例會使用參數清除來尋找最佳模型。 然後,它會將該模型套用到新的資料,以識別可能代表詐騙的風險交易,並比較兩個不同的異常偵測模型。
技術說明
此演算法會使用 PCA 來近似包含正常類別的子空間。 子空間是由與資料共變數矩陣之最高特徵值相關聯的特徵向量所合併。 針對每個新輸入,異常偵測器會先計算它在特徵向量上的投影,然後計算正規化重構錯誤。 此錯誤是異常分數。 錯誤越高,表示執行個體越異常。 如需如何計算一般空間的詳細資訊,請參閱維琪百科: 主體元件分析
模組參數
名稱 | 類型 | 範圍 | 選用 | 描述 | 預設 |
---|---|---|---|---|---|
定型模式 | CreateLearnerMode | 清單:單一參數 | 參數範圍 | 必要 | 單一參數 | 指定學習模組選項。 使用 [單一參數] 選項以手動指定所有值。 使用 [參數範圍] 以掃掠可微調的參數。 |
要在 PCA 中使用的成份數目 | 整數 | 模式:單一參數 | 2 | 指定要在 PCA 中使用之成份的數目。 | |
隨機 PCA 的超取樣參數 | 整數 | 模式:單一參數 | 2 | 指定隨機 PCA 定型的精確度參數。 | |
啟用輸入特徵平均正規化 | 邏輯類型 | 清單:True|False | 必要 | False | 指定是否正規化輸入資料,以具有零平均值。 |
PCA 成份數的範圍 | ParameterRangeSettings | [1; 100] | 模式:參數範圍 | 二級億6八角10 | 指定要在 PCA 中使用之成份數目的範圍。 |
隨機 PCA 中所使用之超取樣參數的範圍 | ParameterRangeSettings | [1; 100] | 模式:參數範圍 | 二級億6八角10 | 指定隨機 PCA 定型中所使用之精確度參數的範圍。 |
輸出
名稱 | 類型 | 描述 |
---|---|---|
未定型的模型 | ILearner 介面 | 以未定型 PCA 為基礎的異常偵測模型 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0017 | 如果一或多個指定的資料行具有目前模組不支援的類型,就會發生例外狀況。 |
錯誤 0062 | 嘗試比較兩個具有不同學習模組類型的模型時,就會發生例外狀況。 |
錯誤 0047 | 如果傳遞給模組的某些資料集的特徵資料行數目太少,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。