RandomizedPcaTrainer 類別

定義

用於 IEstimator<TTransformer> 使用隨機SVD演算法訓練近似PCA。

public sealed class RandomizedPcaTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.AnomalyPredictionTransformer<Microsoft.ML.Trainers.PcaModelParameters>,Microsoft.ML.Trainers.PcaModelParameters>
type RandomizedPcaTrainer = class
    inherit TrainerEstimatorBase<AnomalyPredictionTransformer<PcaModelParameters>, PcaModelParameters>
Public NotInheritable Class RandomizedPcaTrainer
Inherits TrainerEstimatorBase(Of AnomalyPredictionTransformer(Of PcaModelParameters), PcaModelParameters)
繼承

備註

要建立這個訓練器,請使用 RandomizedPcaRandomizedPCA(Options)。

輸入與輸出欄位

輸入特徵欄位資料必須是已知大小的向量。Single 此訓練器會輸出下列欄位:

輸出數據行名稱 欄類型 Description
Score Single 由異常偵測模型計算的非負、無上限分數。
PredictedLabel Boolean 根據閾值預測的標籤。 高於閾值的分數對應到 true ,低於閾值的分數對應到 false。 預設門檻為 0.5。用 <xref:AnomalyDetectionCatalog.ChangeModelThreshold> 來更改預設值。

訓練師特性

機器學習任務 異常偵測
需要正規化嗎? Yes
快取是必須的嗎? No
除了 Microsoft.ML 之外,必須使用 NuGet None
可匯出至 ONNX No

訓練演算法細節

此訓練器利用頂方特徵向量近似包含正規類別的子空間。 對於每個新實例,它會計算原始特徵向量與該子空間上投影特徵之間的範數差。 若誤差接近 0,該實例被視為正常(非異常)。

更具體地說,此訓練器使用隨機方法訓練近似主成分分析(PCA),以計算輸入向量矩陣的奇異值分解(SVD)。 此訓練器產生的模型包含三個參數:

  • 投影矩陣 $U
  • 原始特徵空間中的平均向量 $m$
  • 投影特徵空間中的平均向量 $p$

對於輸入特徵向量 $x$,異常分數是透過比較原始輸入向量的 $L_2$ 範數與投影向量的 $L_2$ 範數來計算:$\sqrt{\left(|x-m|_2^2 - |Ux-p|_2^2\right)|x-m|_2^2}$.

方法在此說明。

請注意,該演算法可透過將 應用 ApproximatedKernelTransformer 於資料後再傳給訓練器,來實現 Kernel PCA。

請參考「參見」區塊,裡面有使用範例的連結。

欄位

名稱 Description
FeatureColumn

訓練師期待的特色欄。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

訓練師期望的標籤欄。 可以是 null,表示該標籤不用於訓練。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

訓練師預期的體重欄。 可以是 null,表示訓練時不使用重量。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)

屬性

名稱 Description
Info

用於 IEstimator<TTransformer> 使用隨機SVD演算法訓練近似PCA。

方法

名稱 Description
Fit(IDataView)

訓練並返回 ITransformer

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

用於 IEstimator<TTransformer> 使用隨機SVD演算法訓練近似PCA。

(繼承來源 TrainerEstimatorBase<TTransformer,TModel>)

擴充方法

名稱 Description
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

在估計鏈中附加一個「快取檢查點」。 這將確保下游估計器能針對快取資料進行訓練。 在訓練師接受多次資料通行前設置快取檢查點會很有幫助。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

給定一個估計器,回傳一個包裹物件,該物件會呼叫一次 Fit(IDataView) 代理。 估計器通常回傳擬合的資訊很重要,因此該 Fit(IDataView) 方法回傳一個特定型別的物件,而非一般 ITransformer的 。 然而,同時, IEstimator<TTransformer> 通常會被組成包含許多物件的管線,因此我們可能需要建立一條估計鏈,將 EstimatorChain<TLastTransformer> 我們想要取得變壓器的估計器埋藏在這條鏈的某處。 在這種情況下,我們可以透過此方法附加一個代理,當 fit 被呼叫時會被呼叫。

適用於

另請參閱