PairwiseCouplingTrainer クラス



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


To create this trainer, use PairwiseCoupling.

Input and Output Columns

The input label column data must be key type and the feature column must be a known-sized vector of Single.

This trainer outputs the following columns:

Output Column Name Column Type Description
Score Vector of Single The scores of all classes. Higher value means higher probability to fall into the associated class. If the i-th element has the largest value, the predicted label index would be i. Note that i is zero-based index.
PredictedLabel key type The predicted label's index. If its value is i, the actual label would be the i-th category in the key-valued input label type.

Trainer Characteristics

機械学習タスク 多クラス分類
正規化が必要ですか? 基になるバイナリ分類子に依存
キャッシュは必要ですか? Yes
Microsoft.ML に加えて必要な NuGet なし
ONNX にエクスポート可能 No

Training Algorithm Details

In this strategy, a binary classification algorithm is trained on each pair of classes. The pairs are unordered but created with replacement: so, if there were three classes, 0, 1, 2, we would train classifiers for the pairs (0,0), (0,1), (0,2), (1,1), (1,2), and (2,2). For each binary classifier, an input data point is considered a positive example if it is in either of the two classes in the pair, and a negative example otherwise. At prediction time, the probabilities for each pair of classes is considered as the probability of being in either class of the pair given the data, and the final predictive probabilities out of that per class are calculated given the probability that an example is in any given pair.

This can allow you to exploit trainers that do not naturally have a multiclass option, for example, using the FastTreeBinaryTrainer to solve a multiclass problem. Alternately, it can allow ML.NET to solve a "simpler" problem even in the cases where the trainer has a multiclass option, but using it directly is not practical due to, usually, memory constraints. For example, while a multiclass logistic regression is a more principled way to solve a multiclass problem, it requires that the trainer store a lot more intermediate state in the form of L-BFGS history for all classes simultaneously, rather than just one-by-one as would be needed for a pairwise coupling classification model.

Check the See Also section for links to usage examples.


Info (継承元 MetaMulticlassTrainer<TTransformer,TModel>)






(継承元 MetaMulticlassTrainer<TTransformer,TModel>)


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

"キャッシュチェックポイント" を推定チェーンに追加します。 これにより、ダウンストリームの estimators がキャッシュされたデータに対してトレーニングされます。 複数のデータパスを使用する場合は、トレーナーの前にキャッシュチェックポイントを用意することをお勧めします。

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

推定値を指定した場合は、が呼び出された後にデリゲートを呼び出すラップオブジェクトを返し Fit(IDataView) ます。 多くの場合、推定によってどのような情報が返されるかについての情報を返すことが重要です。これは、メソッドが、 Fit(IDataView) 単純なだけではなく、明示的に型指定されたオブジェクトを返すためです ITransformer 。 同時に、多くのオブジェクトを IEstimator<TTransformer> 含むパイプラインには、多くの場合、estimators のチェーンを構築することが必要になる場合があり EstimatorChain<TLastTransformer> ます。この場合、トランスフォーマーを取得する対象の推定は、このチェーンのどこかに埋もれています。 このシナリオでは、このメソッドを使用して、fit が呼び出されたときに呼び出されるデリゲートをアタッチできます。