LinearSvmTrainer 類別

定義

利用 IEstimator<TTransformer> 線性二元分類模型,並以線性SVM訓練,預測目標。

public sealed class LinearSvmTrainer : Microsoft.ML.Trainers.OnlineLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type LinearSvmTrainer = class
    inherit OnlineLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class LinearSvmTrainer
Inherits OnlineLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
繼承

備註

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

輸入與輸出欄位

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

輸出數據行名稱 欄類型 Description
Score Single 模型計算出的無界分數。
PredictedLabel Boolean 根據分數的符號來預測的標籤。 負數分數會對應至 false,正分數會對應至 true

訓練師特性

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

訓練演算法細節

線性 SVM 實作了一種演算法,透過解決 SVM 問題,在特徵空間中尋找超平面進行二元分類。 例如,特徵值為 $f_0, f_1,..., f_{D-1}$,預測是透過確定該點落在超平面的哪一側來給出。 這與特徵加權和的符號相同,即 $\sum_{i = 0}^{D-1} \left(w_i * f_i \right) + b$,其中 $w_0, w_1,..., w_{D-1}$ 為演算法計算的權重,$b$ 為演算法計算的偏壓。

線性SVM實作了PEGASOS方法,該方法在隨機梯度下降步與投影步之間交替進行,該方法由Shalev-Shwartz、Singer和Srebro在本 論文 中提出。

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

欄位

名稱 Description
FeatureColumn

訓練師期待的特色欄。

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

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

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

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

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

屬性

名稱 Description
Info

利用 IEstimator<TTransformer> 線性二元分類模型,並以線性SVM訓練,預測目標。

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

方法

名稱 Description
Fit(IDataView, LinearModelParameters)

繼續訓練 a OnlineLinearTrainer<TTransformer,TModel> 使用已訓練 modelParameters 過的 ,並返回 ITransformer

(繼承來源 OnlineLinearTrainer<TTransformer,TModel>)
Fit(IDataView)

訓練並返回 ITransformer

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

利用 IEstimator<TTransformer> 線性二元分類模型,並以線性SVM訓練,預測目標。

(繼承來源 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 被呼叫時會被呼叫。

適用於

另請參閱