共用方式為


SdcaMulticlassTrainerBase<TModel> 類別

定義

IEstimator<TTransformer> 使用以座標下降方法定型的線性多類別分類器模型來預測目標。 根據使用的遺失函式,定型的模型可以是最大 entropy 分類器或多類別支援向量機器。

public abstract class SdcaMulticlassTrainerBase<TModel> : Microsoft.ML.Trainers.SdcaTrainerBase<Microsoft.ML.Trainers.SdcaMulticlassTrainerBase<TModel>.MulticlassOptions,Microsoft.ML.Data.MulticlassPredictionTransformer<TModel>,TModel> where TModel : class
type SdcaMulticlassTrainerBase<'Model (requires 'Model : null)> = class
    inherit SdcaTrainerBase<SdcaMulticlassTrainerBase<'Model>.MulticlassOptions, MulticlassPredictionTransformer<'Model>, 'Model (requires 'Model : null)>
Public MustInherit Class SdcaMulticlassTrainerBase(Of TModel)
Inherits SdcaTrainerBase(Of SdcaMulticlassTrainerBase(Of TModel).MulticlassOptions, MulticlassPredictionTransformer(Of TModel), TModel)

類型參數

TModel
繼承
衍生

備註

若要為最大 entropy 分類器建立此定型器,請使用 SdcaMaximumEntropySdcaMaximumEntropy (Options) 。 若要為遺失函式建立此定型器 (,例如支援向量機器的轉軸遺失) ,請使用SdcaNonCalibrated 或 SdcaNonCalibrated (Options)

輸入和輸出資料行

輸入標籤資料行資料必須是 索引鍵 類型,特徵資料行必須是 的已知大小向量 Single

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

輸出資料行名稱 資料行類型 描述
Score Single 的向量 所有類別的分數。 較高值表示落入相關聯類別的機率較高。 若第 i 個項目具有最大值,則預測標籤索引將會是 i。 請注意,i 是以零為基礎的索引。
PredictedLabel 索引鍵 類型 預測標籤的索引。 若其值是 i,則實際標籤可能會是索引鍵/值輸入標籤類型中的第 i 個類別。

定型器特性

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

評分函式

這會定型線性模型以解決多元分類問題。 假設類別數目為 $m$,且功能數目為 $n$。 它會為 {\mathbb R}$$ 指派$c$-th 類別係數向量 $\textbf{w}_c \in {\mathbb R}^n$ 和 {\mathbb R}$ 中的偏差 $b_c \,適用于 $c=1,\dots,m$。 假設 {\mathbb R}^n$ 中的特徵向量 $\textbf{x} \,$c$-th 類別的分數會是 $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$。 如果 $\textbf{x}$ 屬於類別$c$,則 $\hat{y}^c$ 應該大於 0。 相反地,$\hat{y}^c$ 遠小於 0 表示所需的標籤不應該$c$。

如果定型的模型是最大 Entropy 分類器,您可以將輸出分數向量解譯為預測類別機率,因為 softmax 函式 可能會套用至所有類別的分數後處理。 更具體來說,屬於類別$c$ 的 $\textbf{x}$ 機率是由 $\tilde{P}計算 ( c |\textbf{x} ) = \frac{ e^{\hat{y}^c} }{ \sum_{c' = 1}^m e^{\hat{y}^{c'}} }$ ,並儲存在分數向量的 $c$-th 元素。 在其他情況下,輸出分數向量只是 $[\hat{y}^1,\dots,\hat{y}^m]$。

定型演算法詳細資料

優化演算法是座標 下降方法 的延伸,遵循先前 的檔中所建議的類似路徑。 它通常比 L-BFGS 快很多,而且針對大規模和疏 松資料集截斷的 Newton 方法

這個類別會使用 經驗風險最小化 (,也就是 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> 使用以座標下降方法定型的線性多類別分類器模型來預測目標。 根據使用的遺失函式,定型的模型可以是最大 entropy 分類器或多類別支援向量機器。

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

方法

Fit(IDataView)

定型並傳 ITransformer 回 。

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

IEstimator<TTransformer> 使用以座標下降方法定型的線性多類別分類器模型來預測目標。 根據使用的遺失函式,定型的模型可以是最大 entropy 分類器或多類別支援向量機器。

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

擴充方法

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

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

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

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

適用於

另請參閱