OneVersusAllTrainer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
用於 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) | |
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> 建置估算器的鏈結,而我們想要取得轉換器的估算器會在此鏈結的某處被隱藏。 在該案例中,我們可以透過此方法附加呼叫一次將會呼叫的委派。 |