SdcaLogisticRegressionBinaryTrainer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用於 IEstimator<TTransformer> 使用隨機雙座標 ascent 方法定型二元羅吉斯回歸分類模型的 。 定型的模型經過 校正 ,而且可以將線性函式的輸出值饋送至 PlattCalibrator ,以產生機率。
public sealed class SdcaLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.SdcaBinaryTrainerBase<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type SdcaLogisticRegressionBinaryTrainer = class
inherit SdcaBinaryTrainerBase<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class SdcaLogisticRegressionBinaryTrainer
Inherits SdcaBinaryTrainerBase(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
- 繼承
-
SdcaTrainerBase<SdcaBinaryTrainerBase<TModelParameters>.BinaryOptionsBase,BinaryPredictionTransformer<TModelParameters>,TModelParameters>SdcaLogisticRegressionBinaryTrainer
備註
若要建立此定型器,請使用 SdcaLogisticRegression 或 SdcaLogisticRegression (Options) 。
輸入和輸出資料行
輸入標籤資料行資料必須是 Boolean。 輸入特徵資料行資料必須是 的已知大小向量 Single 。
此定型器會輸出下列資料行:
輸出資料行名稱 | 資料行類型 | 描述 | |
---|---|---|---|
Score |
Single | 模型計算的未系結分數。 | |
PredictedLabel |
Boolean | 預測標籤 (根據分數的正負號)。 負值分數會對應到 false ,正值分數則會對應到 true 。 |
|
Probability |
Single | 藉由校正具有 true 作為標籤的分數來計算的機率。 機率值的範圍 [0, 1]。 |
定型器特性
機器學習工作 | 二元分類 |
是否需要正規化? | 是 |
是否需要快取? | 否 |
除了 Microsoft.ML 之外,還需要 NuGet | 無 |
可匯出至 ONNX | 是 |
定型演算法詳細資料
此定型器是以 Stochastic Dual Coordinate Ascent (SDCA) 方法為基礎,這是適用于凸面目標函式的最新優化技術。 可以調整演算法,因為它是KDD 最佳檔中所述的串流定型演算法。
聚合是藉由在個別執行緒中定期強制執行主要變數與雙重變數之間的同步處理來撰寫。 也提供數個遺失函式選擇,例如 轉軸遺失 和 羅吉斯遺失。 根據使用的損失而定,定型的模型可以是 支援向量機器 或 羅吉斯回歸。 SDCA 方法結合了數個最佳屬性,例如能夠執行串流學習 (,而不需要將整個資料集調整到記憶體) ,並透過一些整個資料集 (的掃描來達到合理的結果,例如,請參閱 本檔中 的實驗) ,並在疏鬆資料集的零上不花費任何計算。
請注意,SDCA 是隨機和串流優化演算法。 結果取決於定型資料的順序,因為停止容錯不夠緊密。 在強凸優化中,最佳解決方案是唯一的,因此每個人都最終到達相同的位置。 即使在非強式凸凸的情況下,您仍會從執行到執行中取得同樣良好的解決方案。 針對可重現的結果,建議將 'Shuffle' 設定為 False,並將 'NumThreads' 設定為 1。
這個類別會使用 經驗風險最小化 (,也就是 ERM) 來制定根據收集的資料所建置的優化問題。 請注意,經驗風險通常是藉由在所收集的資料點上套用模型預測的損失函式來測量。 例如,如果定型資料未包含足夠的資料點 (,若要在 $n$維度空間中定型線性模型,我們需要至少$n$ 個資料點) ,可能會發生 過度學習 ,讓 ERM 所產生的模型很適合描述定型資料,但可能無法預測不可見事件的正確結果。 正規化 是一種常見技術,可藉由調整模型參數的 norm 函式) 通常測量的大小 (來減輕這類現象。 此定型器支援 彈性 net 正規化,可讓 L1 標準 (LASSO) 、$|| 線性組合\textbf{w}_c ||_1$ 和 L2-norm () ,$||\textbf{w}_c ||$c=1,\dots,m$的 _2^2$ 正規化。 L1-norm 和 L2-norm 正規化有不同的效果,而且在某些方面是互補的用法。
結合實作的優化演算法,L1 標準正規化可以增加模型權數 $\textbf{w}_1,\dots,\textbf{w}_m$。 對於高維度和疏鬆資料集,如果使用者仔細選取 L1-norm 的係數,就可以使用只有少數非零權數的模型達到良好的預測品質 (,例如,1% 的總模型權數) ,而不會影響其預測能力。 相反地,L2 norm 無法增加定型模型的疏疏性,但仍可避免大型參數值過度學習。 有時候,使用 L2 標準會導致更好的預測品質,因此使用者可能仍想要嘗試,並微調 L1-norm 和 L2-norm 的係數。 請注意,在概念上,使用 L1-norm 表示所有模型參數的 分佈都是 Laplace 分佈 ,而 L2 標準表示 其 Gaussian 分佈 。
積極正規化 (,也就是將大型係數指派給 L1-norm 或 L2-norm 正規化詞彙,) 可以排除模型中的重要變數來損害預測容量。 例如,非常大的 L1 標準係數可能會強制所有參數為零,並導致簡單的模型。 因此,在實務上選擇正確的正規化係數很重要。
如需詳細資訊,請參閱
如需使用方式範例的連結,請參閱另請參閱一節。
欄位
FeatureColumn |
定型器預期的功能資料行。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
定型器預期的標籤資料行。 可以是 |
WeightColumn |
定型器預期的加權資料行。 可以是 |
屬性
Info |
用於 IEstimator<TTransformer> 使用隨機雙座標 ascent 方法定型二元羅吉斯回歸分類模型的 。 定型的模型經過 校正 ,而且可以將線性函式的輸出值饋送至 PlattCalibrator ,以產生機率。 (繼承來源 SdcaBinaryTrainerBase<TModelParameters>) |
方法
Fit(IDataView) |
定型並傳 ITransformer 回 。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
用於 IEstimator<TTransformer> 使用隨機雙座標 ascent 方法定型二元羅吉斯回歸分類模型的 。 定型的模型經過 校正 ,而且可以將線性函式的輸出值饋送至 PlattCalibrator ,以產生機率。 (繼承來源 TrainerEstimatorBase<TTransformer,TModel>) |
擴充方法
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
將「快取檢查點」附加至估算器鏈結。 這可確保下游估算器會針對快取的資料定型。 在接受多個資料通過的定型器之前,先有快取檢查點會很有説明。 |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
指定估算器時,傳回包裝物件,一旦 Fit(IDataView) 呼叫委派即可。 估算器通常務必傳回符合專案的相關資訊,這就是 Fit(IDataView) 方法傳回特定型別物件的原因,而不是只傳回一般 ITransformer 。 不過,同時, IEstimator<TTransformer> 通常會形成具有許多物件的管線,因此我們可能需要透過建置估算器的鏈結,而我們想要取得轉換器的估算器 EstimatorChain<TLastTransformer> 會在此鏈結的某處放置。 在該案例中,我們可以透過這個方法附加呼叫一次會呼叫的委派。 |
適用於
另請參閱
- SdcaLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, SdcaLogisticRegressionBinaryTrainer+Options)
- SdcaLogisticRegressionBinaryTrainer.Options