SdcaRegressionTrainer 類別

定義

用於 IEstimator<TTransformer> 使用隨機雙座標 ascent 方法定型回歸模型的 。

public sealed class SdcaRegressionTrainer : Microsoft.ML.Trainers.SdcaTrainerBase<Microsoft.ML.Trainers.SdcaRegressionTrainer.Options,Microsoft.ML.Data.RegressionPredictionTransformer<Microsoft.ML.Trainers.LinearRegressionModelParameters>,Microsoft.ML.Trainers.LinearRegressionModelParameters>
type SdcaRegressionTrainer = class
    inherit SdcaTrainerBase<SdcaRegressionTrainer.Options, RegressionPredictionTransformer<LinearRegressionModelParameters>, LinearRegressionModelParameters>
Public NotInheritable Class SdcaRegressionTrainer
Inherits SdcaTrainerBase(Of SdcaRegressionTrainer.Options, RegressionPredictionTransformer(Of LinearRegressionModelParameters), LinearRegressionModelParameters)
繼承

備註

若要建立此定型器,請使用 SdcaSdca (Options)

輸入和輸出資料行

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

此定型器會輸出下列資料行:

輸出資料行名稱 資料行類型 描述
Score Single 模型所預測的未系結分數。

定型器特性

機器學習工作 迴歸
是否需要正規化?
是否需要快取?
除了 Microsoft.ML 之外,還需要 NuGet
可匯出至 ONNX

定型演算法詳細資料

此定型器是以 Stochastic Dual Coordinate Ascent (SDCA) 方法為基礎,這是適用于凸合目標函式的最先進的優化技術。 演算法可以調整,因為它是KDD 最佳檔中所述的串流定型演算法。

聚合是透過在個別執行緒中定期強制執行主要變數與雙重變數之間的同步處理來撰寫。 也會提供數個損失函式選擇,例如 轉軸損失羅吉斯損失。 根據使用的損失而定,定型的模型可以是 支援向量機器羅吉斯回歸。 SDCA 方法結合了數個最佳屬性,例如能夠執行串流學習 (,而不需要將整個資料集調整到記憶體) ,以一些掃描整個資料集 (達到合理的結果,例如,請參閱 這份檔中 的實驗) ,並在疏鬆資料集中不計算零。

請注意,SDCA 是隨機和串流優化演算法。 結果取決於定型資料的順序,因為停止容錯不夠緊密。 在強凸優化中,最佳解決方案是唯一的,因此每個人都最終會到達相同的位置。 即使在非強式凸起的案例中,您也會從執行到執行中取得同樣良好的解決方案。 針對可重現的結果,建議將 'Shuffle' 設定為 False,並將 'NumThreads' 設定為 1。

這個類別會使用 經驗風險最小化 (,也就是 ERM) 來制定以收集的資料為基礎的優化問題。 請注意,經驗風險通常是藉由對所收集的資料點套用模型預測的損失函式來測量。 例如,如果定型資料未包含足夠的資料點 (,若要在 $n$維度空間中定型線性模型,我們需要至少$n$ 個資料點) ,則可能會發生 過度學習 ,以便 ERM 所產生的模型很適合用來描述定型資料,但可能無法預測未看到事件的正確結果。 正規化 是一種常見技術,可藉由縮減模型參數的 norm 函 式) 通常測量的大小 (來減輕這類現象。 此定型器支援 彈性淨正規化,可調整 L1-norm (LASSO) 、$|| 的線性組合\textbf{w}_c ||_1$和 L2-norm () 、$||\textbf{w}_c ||$c=1,\dots,m$的 _2^2$ 正規化。 L1-norm 和 L2-norm 正規化有不同的效果,而且在某些方面是互補的用法。

與實作的優化演算法一起,L1-norm 正規化可以增加模型加權的疏疏性 $\textbf{w}_1,\dots,\textbf{w}_m$。 對於高維度和疏鬆資料集,如果使用者仔細選取 L1-norm 的係數,就可以使用只有少數非 (零權數的模型來達到良好的預測品質,例如,1% 的總模型權數) ,而不會影響其預測能力。 相反地,L2-norm 無法增加定型模型的疏疏性,但仍可避免過度學習,方法是避免大型參數值。 有時候,使用 L2-norm 會導致更好的預測品質,因此使用者可能仍想要嘗試它,並微調 L1-norm 和 L2-norm 的係數。 請注意,在概念上,使用 L1-norm 表示所有模型參數的分佈都是 Laplace 分佈 ,而 L2-norm 則表示 它們的 Gaussian 分佈

正規化 (,也就是將大型係數指派給 L1-norm 或 L2-norm 正規化詞彙,) 可能會藉由從模型中排除重要的變數來損害預測容量。 例如,非常大型的 L1-norm 係數可能會強制所有參數為零,並導致一般模型。 因此,在實務上選擇正確的正規化係數很重要。

如需詳細資訊,請參閱

如需使用範例的連結,請參閱另請參閱一節。

欄位

FeatureColumn

定型器預期的功能資料行。

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

定型器預期的標籤資料行。 可以是 null ,表示標籤不會用於定型。

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

定型器預期的加權資料行。 可以是 null ,表示不會使用權數來定型。

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

屬性

Info

用於 IEstimator<TTransformer> 使用隨機雙座標 ascent 方法定型回歸模型的 。

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

方法

Fit(IDataView)

定型並傳 ITransformer 回 。

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

用於 IEstimator<TTransformer> 使用隨機雙座標 ascent 方法定型回歸模型的 。

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

擴充方法

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

將「快取檢查點」附加至估算器鏈結。 這可確保下游估算器會針對快取的資料定型。 在接受多個資料通過的定型器之前,擁有快取檢查點會很有説明。

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

假設有估算器,則會傳回包裝物件,一旦 Fit(IDataView) 呼叫委派即可。 估算器通常必須傳回符合專案的相關資訊,這就是方法 Fit(IDataView) 傳回特定型別物件的原因,而不是只傳回一般 ITransformer 。 不過,同時 IEstimator<TTransformer> ,通常會形成具有許多物件的管線,因此我們可能需要透過 EstimatorChain<TLastTransformer> 建置估算器的鏈結,而我們想要取得轉換器的估算器會在此鏈結的某處被隱藏。 在該案例中,我們可以透過此方法附加呼叫一次將會呼叫的委派。

適用於

另請參閱