GamBinaryTrainer 類別

定義

用於 IEstimator<TTransformer> 訓練一個具有廣義加法模型(GAM)的二元分類模型。

public sealed class GamBinaryTrainer : Microsoft.ML.Trainers.FastTree.GamTrainerBase<Microsoft.ML.Trainers.FastTree.GamBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.FastTree.GamBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.FastTree.GamBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type GamBinaryTrainer = class
    inherit GamTrainerBase<GamBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<GamBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<GamBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class GamBinaryTrainer
Inherits GamTrainerBase(Of GamBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of GamBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of GamBinaryModelParameters, PlattCalibrator))
繼承

備註

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

輸入與輸出欄位

輸入標籤欄位資料必須是 Boolean。 輸入特徵欄位資料必須是已知大小的向量。Single

此訓練器會輸出下列欄位:

輸出數據行名稱 欄類型 Description
Score Single 模型計算出的無界分數。
PredictedLabel Boolean 根據分數的符號來預測的標籤。 負數分數會對應至 false,正分數會對應至 true
Probability Single 這個機率是透過校準以 為真為標籤所計算出來的。 機率值在範圍 [0, 1]。

訓練師特性

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

訓練演算法細節

廣義加法模型(GAM)將資料建模為一組線性無關特徵,類似線性模型。 對於每個特徵,GAM 訓練器會學習一個非線性函數,稱為「形狀函數」,該函數以特徵值的函數計算響應。 (相較之下,線性模型對每個特徵擬合線性響應(例如一條線)。) 要對輸入評分,所有形狀函數的輸出會相加,分數即為總值。

此 GAM 訓練器利用淺梯度增強樹(如樹樁)實作,學習非參數形狀函數,基於 Lou、Caruana 與 Gehrke 所述方法。 「可理解的分類與迴歸模型。」 KDD'12,中國北京。 2012. 訓練結束後,會加入截距以表示訓練集的平均預測值,並將形狀函數正規化為偏離平均預測的範圍。 這導致模型能透過檢查截距與形狀函數輕鬆解讀。 請參考下方範例,了解如何訓練 GAM 模型,並檢視並解讀結果。

請參考「參見」部分,裡面有相關用法的連結。

欄位

名稱 Description
FeatureColumn

訓練師期待的特色欄。

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

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

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

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

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

屬性

名稱 Description
Info

用於 IEstimator<TTransformer> 訓練一個具有廣義加法模型(GAM)的二元分類模型。

(繼承來源 GamTrainerBase<TOptions,TTransformer,TPredictor>)

方法

名稱 Description
Fit(IDataView, IDataView)

使用訓練與驗證資料訓練 a GamBinaryTrainer ,回傳 BinaryPredictionTransformer<TModel>

Fit(IDataView)

訓練並返回 ITransformer

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

用於 IEstimator<TTransformer> 訓練一個具有廣義加法模型(GAM)的二元分類模型。

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

適用於

另請參閱