次の方法で共有


OneVersusAllTrainer クラス

定義

IEstimator<TTransformer>指定した二項分類子を使用する 1 対すべての多クラス分類子をトレーニングする場合。

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) 戦略では、二項分類アルゴリズムを使用して、クラスごとに 1 つの分類子をトレーニングします。このアルゴリズムは、そのクラスを他のすべてのクラスと区別します。 予測は、これらの二項分類子を実行し、最も高い信頼度スコアを持つ予測を選択することによって実行されます。 このアルゴリズムは、ML.NET 内の任意のバイナリ分類子と共に使用できます。 いくつかの二項分類子には、複数クラスの問題に対する実装が既に用意されているため、ユーザーはコンテキストに応じていずれかを選択できます。 OVA バージョンのバイナリ分類子 (ラップ LightGbmBinaryTrainerなど) は、複数クラス分類子を直接開発する場合とは LightGbmMulticlassTrainer異なる場合があります。 分類子がキャッシュを必要としないことを示した場合でも、OneVersusAll はデータ セットに対して複数のパスを実行することになるため、常にキャッシュを要求することに注意してください。 このトレーナーは、分類子がデータ パイプラインの恩恵を受けると示した場合に、データ パイプラインに正規化を要求します。

これにより、多クラスの問題を解決するために使用 FastTreeBinaryTrainer するなど、自然に多クラスオプションを持たないトレーナーを悪用することができます。 または、トレーナーに多クラス オプションがある場合でも、ML.NET で "単純な" 問題を解決できますが、それを直接使用することは、通常はメモリの制約のために実用的ではありません。 たとえば、多クラスロジスティック回帰は多クラスの問題を解決するためのより原則的な方法ですが、トレーナーは、1 対 1 の分類モデルに必要な 1 つずつではなく、すべてのクラスの L-BFGS 履歴の形式で、より多くの中間状態を 同時に格納する必要があります。

使用例へのリンクについては、「関連項目」セクションを参照してください。

プロパティ

Info

IEstimator<TTransformer>指定した二項分類子を使用する 1 対すべての多クラス分類子をトレーニングする場合。

(継承元 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> 、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください