OneVersusAllTrainer 類別

定義

用於 IEstimator<TTransformer> 定型使用指定二元分類器的一元與全部多類別分類器。

public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
繼承

備註

若要建立此定型器,請使用 OneVersusAll

輸入和輸出資料行

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

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

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

定型器特性

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

定型演算法詳細資料

在一對全 (OVA) 策略中,二元分類演算法是用來為每個類別定型一個分類器,以區分該類別與其他所有類別。 然後,執行這些二元分類器並選擇具有最高信賴分數的預測,即可執行預測。 此演算法可以與 ML.NET 中的任何二進位分類器搭配使用。 一些二元分類器已經有多類別問題的實作,因此使用者可以根據內容選擇其中一個。 二元分類器的 OVA 版本,例如包裝 LightGbmBinaryTrainer ,可以不同于 LightGbmMulticlassTrainer 直接開發多類別分類器。 請注意,即使分類器指出它不需要快取,OneVersusAll 一律會要求快取,因為它會在資料集上執行多個傳遞。 如果分類器指出從資料管線獲益,此定型器會要求正規化。

這可讓您利用非自然具有多類別選項的定型人員,例如,使用 FastTreeBinaryTrainer 來解決多類別問題。 或者,即使定型器具有多類別選項,也可以允許 ML.NET 解決「更簡單」的問題,但直接使用它並不實用,通常是記憶體條件約束。 例如,雖然多類別羅吉斯回歸是解決多類別問題的更原則方式,但是訓練人員需要以所有類別的 L-BFGS 歷程記錄形式儲存更多中繼 狀態,而不只是一對一分類模型所需的一對一分類模型。

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

屬性

Info

用於 IEstimator<TTransformer> 定型使用指定二元分類器的一元與全部多類別分類器。

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

方法

Fit(IDataView)

MulticlassPredictionTransformer<TModel>定型模型。

GetOutputSchema(SchemaShape)

取得輸出資料行。

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

擴充方法

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

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

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

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

適用於

另請參閱