One-vs-All MulticlassOne-vs-All Multiclass

この記事では、Azure Machine Learning デザイナー (プレビュー) で One-vs-All Multiclass モジュールを使用する方法について説明します。This article describes how to use the One-vs-All Multiclass module in Azure Machine Learning designer (preview). 目標は、one-versus-all アプローチを使って複数のクラスを予測できる分類モデルを作成することです。The goal is to create a classification model that can predict multiple classes, by using the one-versus-all approach.

このモジュールは、結果が連続またはカテゴリ予測変数に依存する場合に、考えられる 3 つ以上の結果を予測するモデルを作成する際に役立ちます。This module is useful for creating models that predict three or more possible outcomes, when the outcome depends on continuous or categorical predictor variables. また、この方法では、複数の出力クラスを必要とする問題に二項分類法を使用することもできます。This method also lets you use binary classification methods for issues that require multiple output classes.

one-versus-all モデルの詳細More about one-versus-all models

分類アルゴリズムには、3 つ以上のクラスの使用が仕様で許可されているものもあります。Some classification algorithms permit the use of more than two classes by design. 考えられる結果を 2 つの値のいずれかに制限するもの (バイナリ (2 クラス) モデル) もあります。Others restrict the possible outcomes to one of two values (a binary, or two-class model). ただし、二項分類アルゴリズムでも、さまざまな戦略を使用して多クラス分類タスクに適合させることができます。But even binary classification algorithms can be adapted for multi-class classification tasks through a variety of strategies.

このモジュールは、複数の出力クラスのそれぞれに対してバイナリ モデルが作成される one-versus-all 法を実装しています。This module implements the one-versus-all method, in which a binary model is created for each of the multiple output classes. このモジュールでは、個々のクラスのこれらの各バイナリ モデルが、二項分類の問題と同様に、その補集合 (モデルの他のすべてのクラス) に対して評価されます。The module assesses each of these binary models for the individual classes against its complement (all other classes in the model) as though it's a binary classification issue. 次に、これらの二項分類子を実行し、信頼度スコアが最も高い予測を選択することで、予測が行われます。The module then performs prediction by running these binary classifiers and choosing the prediction with the highest confidence score.

このモジュールでは、実質的に、個々のモデルのアンサンブルが作成され、結果がマージされて、すべてのクラスを予測する単一のモデルが作成されます。In essence, the module creates an ensemble of individual models and then merges the results, to create a single model that predicts all classes. 任意の二項分類子を one-versus-all モデルの基礎として使用できます。Any binary classifier can be used as the basis for a one-versus-all model.

たとえば、2 クラス サポート ベクター マシン モデルを構成し、それを One-vs-All Multiclass モジュールへの入力として提供するとします。For example, let’s say you configure a Two-Class Support Vector Machine model and provide that as input to the One-vs-All Multiclass module. モジュールにより、出力クラスのすべてのメンバーに対して 2 クラス サポート ベクター マシン モデルが作成されます。The module would create two-class support vector machine models for all members of the output class. その後、one-versus-all 法を適用してすべてのクラスの結果が結合されます。It would then apply the one-versus-all method to combine the results for all classes.

One-vs-All Multiclass 分類子を構成する方法How to configure the One-vs-All Multiclass classifier

このモジュールでは、複数のクラスを分析するための二項分類モデルのアンサンブルが作成されます。This module creates an ensemble of binary classification models to analyze multiple classes. このモジュールを使用するには、まず "二項分類" モデルを構成してトレーニングする必要があります。To use this module, you need to configure and train a binary classification model first.

バイナリ モデルを One-vs-All Multiclass モジュールに接続します。You connect the binary model to the One-vs-All Multiclass module. 次に、ラベル付きトレーニング データセットに対してモデルのトレーニングを使用してモデルのアンサンブルをトレーニングします。You then train the ensemble of models by using Train Model with a labeled training dataset.

モデルを組み合わせると、One-vs-All Multiclass によって複数の二項分類モデルが作成され、クラスごとにアルゴリズムが最適化されて、モデルがマージされます。When you combine the models, One-vs-All Multiclass creates multiple binary classification models, optimizes the algorithm for each class, and then merges the models. このモジュールは、トレーニング データセットに複数のクラス値がある場合でも、これらのタスクを実行します。The module does these tasks even though the training dataset might have multiple class values.

  1. デザイナーで One-vs-All Multiclass モジュールを自分のパイプラインに追加します。Add the One-vs-All Multiclass module to your pipeline in the designer. このモジュールは、 [Machine Learning] - [初期化][分類] カテゴリにあります。You can find this module under Machine Learning - Initialize, in the Classification category.

    One-vs-All Multiclass 分類子には、独自の構成可能なパラメーターはありません。The One-vs-All Multiclass classifier has no configurable parameters of its own. カスタマイズは、入力として提供される二項分類モデルで行う必要があります。Any customizations must be done in the binary classification model that's provided as input.

  2. 二項分類モデルをパイプラインに追加し、そのモデルを構成します。Add a binary classification model to the pipeline, and configure that model. たとえば、2 クラス サポート ベクター マシンまたは 2 クラス ブースト デシジョン ツリーを使用できます。For example, you might use Two-Class Support Vector Machine or Two-Class Boosted Decision Tree.

  3. モデルのトレーニング モジュールを自分のパイプラインに追加します。Add the Train Model module to your pipeline. One-vs-All Multiclass の出力であるトレーニングされていない分類子を接続します。Connect the untrained classifier that is the output of One-vs-All Multiclass.

  4. モデルのトレーニングのもう一方の入力で、複数のクラス値を含むラベル付きトレーニング データセットを接続します。On the other input of Train Model, connect a labeled training dataset that has multiple class values.

  5. パイプラインを送信します。Submit the pipeline.

結果Results

トレーニングが完了したら、モデルを使用して多クラス予測を行うことができます。After training is complete, you can use the model to make multiclass predictions.

または、トレーニングされていない分類子を Cross-Validate Model (モデルのクロス検証) に渡して、ラベル付き検証データセットに対するクロス検証を行うこともできます。Alternatively, you can pass the untrained classifier to Cross-Validate Model for cross-validation against a labeled validation dataset.

次のステップNext steps

Azure Machine Learning で使用できる一連のモジュールを参照してください。See the set of modules available to Azure Machine Learning.