LbfgsLogisticRegressionBinaryTrainer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
利用 IEstimator<TTransformer> 使用 L-BFGS 方法訓練的線性邏輯迴歸模型來預測目標。
public sealed class LbfgsLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsLogisticRegressionBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type LbfgsLogisticRegressionBinaryTrainer = class
inherit LbfgsTrainerBase<LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class LbfgsLogisticRegressionBinaryTrainer
Inherits LbfgsTrainerBase(Of LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
- 繼承
備註
要建立這個訓練器,請使用 LbfgsLogisticRegression 或 LbfgsLogisticRegression(Options)。
輸入與輸出欄位
輸入標籤欄位資料必須是 Boolean。 輸入特徵欄位資料必須是已知大小的向量。Single
此訓練器會輸出下列欄位:
| 輸出數據行名稱 | 欄類型 | Description | |
|---|---|---|---|
Score |
Single | 模型計算出的無界分數。 | |
PredictedLabel |
Boolean | 根據分數的符號來預測的標籤。 負數分數會對應至 false,正分數會對應至 true。 |
|
Probability |
Single | 這個機率是透過校準以 為真為標籤所計算出來的。 機率值在範圍 [0, 1]。 |
訓練師特性
| 機器學習任務 | 二元分類 |
| 需要正規化嗎? | Yes |
| 快取是必須的嗎? | No |
| 除了 Microsoft.ML 之外,必須使用 NuGet | None |
| 可匯出至 ONNX | Yes |
計分功能
線性邏輯斯迴歸是線性模型的一種變體。 它將特徵向量 $\textbf{x} \in {\mathbb R}^n$ 映射到標量,透過 $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$,其中 $x_j$ 是第 $j$ 特徵的值,$\textbf{w}$ 的第 $j$ 元素是第 $j 個特徵的係數, 而$b美元是一種可學習的偏見。 獲得真實標籤的相應機率為 $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}}$。
訓練演算法細節
所實作的優化技術基於有限記憶體的 Broyden-FletcherGoldfarb-Shanno 方法(L-BFGS)。 L-BFGS 是一種 準牛頓方法 ,以近似取代了 Hessian 矩陣昂貴的計算成本,但仍享有類似 Newton 方法 的快速收斂率,後者計算完整的 Hessian 矩陣。 由於 L-BFGS 近似僅使用有限的歷史狀態來計算下一步方向,因此特別適用於高維特徵向量問題。 歷史狀態的數量是使用者指定的參數,使用較大的數值可能更接近黑森矩陣,但每步計算成本也會較高。
正則化是一種方法,透過施加限制來補充資料,並透過懲罰通常由某些範數測量的模型大小來防止過度擬合,使錯態問題更易處理。 這能透過選擇偏差與變異權衡中的最佳複雜度,提升所學模型的推廣性。 正則化的原理是將與係數值相關的懲罰加到假設的誤差上。 極端係數的準確模型會受到較多懲罰,而較保守的模型則較少。
此學習器支援 彈性淨正則化:L1-範數(LASSO)的線性組合,$||\textbf{w} ||_1$,以及L2-範數(脊),$||\textbf{w} ||_2^2$ 正則化。 L1-範數與L2-範數正則化具有不同的效果與用途,但在某些方面是互補的。 使用 L1 範數可以增加訓練 $\textbf{w}$ 的稀疏度。 在處理高維資料時,它會將無關特徵的小權重縮減至零,因此在預測時不會花費資源在這些不良特徵上。 若使用 L1 範數正則化,訓練演算法為 OWL-QN。 L2範數正則化較適合資料不稀疏且大幅不利於大權重的存在。
積極的正則化(即對L1範數或L2範數項賦予大型係數)會因排除重要變數而損害預測能力。 因此,在應用邏輯迴歸時,選擇合適的正則化係數非常重要。
請參考「參見」區塊,裡面有使用範例的連結。
欄位
| 名稱 | Description |
|---|---|
| FeatureColumn |
訓練師期待的特色欄。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
訓練師期望的標籤欄。 可以是 |
| WeightColumn |
訓練師預期的體重欄。 可以是 |
屬性
| 名稱 | Description |
|---|---|
| Info |
利用 IEstimator<TTransformer> 使用 L-BFGS 方法訓練的線性邏輯迴歸模型來預測目標。 (繼承來源 LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
方法
| 名稱 | Description |
|---|---|
| Fit(IDataView, LinearModelParameters) |
繼續訓練 a LbfgsLogisticRegressionBinaryTrainer 使用已訓練 |
| Fit(IDataView) |
訓練並返回 ITransformer。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
利用 IEstimator<TTransformer> 使用 L-BFGS 方法訓練的線性邏輯迴歸模型來預測目標。 (繼承來源 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 被呼叫時會被呼叫。 |
適用於
另請參閱
- LbfgsLogisticRegressionBinaryTrainer.Options
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)