2 クラス デシジョン フォレスト モジュールTwo-Class Decision Forest module

この記事では Azure Machine Learning デザイナー (プレビュー) 内のモジュールについて説明します。This article describes a module in Azure Machine Learning designer (preview).

デシジョン フォレスト アルゴリズムに基づいて機械学習モデルを作成するには、このモジュールを使用します。Use this module to create a machine learning model based on the decision forests algorithm.

デシジョン フォレストは、高速な教師ありアンサンブル モデルです。Decision forests are fast, supervised ensemble models. 最大 2 つの結果を伴うターゲットを予測したい場合、このモジュールが適しています。This module is a good choice if you want to predict a target with a maximum of two outcomes.

デシジョン フォレストについてUnderstanding decision forests

このデシジョン フォレスト アルゴリズムは、分類タスクを対象としたアンサンブル学習手法です。This decision forest algorithm is an ensemble learning method intended for classification tasks. アンサンブル法は、1 つのモデルを利用するのではなく、複数の関連するモデルを作成し、それらをなんらかの方法で組み合わせた方が、より良い結果と、より一般化したモデルが得られるという一般原則に基づきます。Ensemble methods are based on the general principle that rather than relying on a single model, you can get better results and a more generalized model by creating multiple related models and combining them in some way. 一般に、アンサンブル モデルは、単一のデシジョン ツリーと比べ、カバレッジと正確性が優れています。Generally, ensemble models provide better coverage and accuracy than single decision trees.

個別のモデルを作成して 1 つのアンサンブルにまとめる方法は多数存在します。There are many ways to create individual models and combine them in an ensemble. この特定のデシジョン フォレストの実装は、複数のデシジョン ツリーを構築したうえで、最良の出力クラスに投票することで機能します。This particular implementation of a decision forest works by building multiple decision trees and then voting on the most popular output class. 投票は、アンサンブル モデルで結果を生成するための方法の 1 つとしてよく知られています。Voting is one of the better-known methods for generating results in an ensemble model.

  • 開始点を差別化 (通常はランダム化) しながらデータセット全体を使用して個々の分類ツリーが多数作成されます。Many individual classification trees are created, using the entire dataset, but different (usually randomized) starting points. データまたは特徴のうちのランダム化された部分だけが個々のデシジョン ツリーで使用されるという点で、これはランダム フォレスト法とは異なります。This differs from the random forest approach, in which the individual decision trees might only use some randomized portion of the data or features.
  • デシジョン フォレスト ツリー内の各ツリーからは、ラベルの頻度ヒストグラムが正規化されていない状態で出力されます。Each tree in the decision forest tree outputs a non-normalized frequency histogram of labels.
  • これらのヒストグラムをアグリゲーション プロセスで合計し、結果を正規化することで、各ラベルの "確率" が得られます。The aggregation process sums these histograms and normalizes the result to get the “probabilities” for each label.
  • アンサンブルの最終決定では、予測信頼性の高いツリーに、より大きい重みが与えられます。The trees that have high prediction confidence will have a greater weight in the final decision of the ensemble.

一般に、デシジョン ツリーには、分類タスクに関して多くの利点があります。Decision trees in general have many advantages for classification tasks:

  • 非線形の決定境界を捕捉できる。They can capture non-linear decision boundaries.
  • 計算とメモリ使用量の効率的なため、大量のデータをトレーニングして予測できる。You can train and predict on lots of data, as they are efficient in computation and memory usage.
  • トレーニング プロセスと分類プロセスに特徴選択が統合されている。Feature selection is integrated in the training and classification processes.
  • ツリーは、ノイズの多いデータや多数の特徴に対応できる。Trees can accommodate noisy data and many features.
  • ノンパラメトリック モデルであるため、さまざまな分布のデータを扱うことができる。They are non-parametric models, meaning they can handle data with varied distributions.

ただし単純なデシジョン ツリーではデータのオーバーフィットが生じることがあり、ツリー アンサンブルに比べ汎化性能が低くなります。However, simple decision trees can overfit on data, and are less generalizable than tree ensembles.

詳細については、「Decision Forests (デシジョン フォレスト)」を参照してください。For more information, see Decision Forests.

構成方法How to configure

  1. Azure Machine Learning で 2 クラス デシジョン フォレスト モジュールをパイプラインに追加し、そのモジュールの [プロパティ] ウィンドウを開きます。Add the Two-Class Decision Forest module to your pipeline in Azure Machine Learning, and open the Properties pane of the module.

    このモジュールは、 [Machine Learning](機械学習) にあります。You can find the module under Machine Learning. [初期化][分類] の順に展開します。Expand Initialize, and then Classification.

  2. [Resampling method](再サンプリング方法) で、個々のツリーの作成に使用される方法を選択します。For Resampling method, choose the method used to create the individual trees. [Bagging](バギング) または [レプリケート] から選択できます。You can choose from Bagging or Replicate.

    • [Bagging](バギング) : バギングは、"ブートストラップ アグリゲーティング" とも呼ばれます。Bagging: Bagging is also called bootstrap aggregating. この方法では、元のデータセットを置換しながら、元のサイズになるまでランダムにサンプリングすることによって作成された新しいサンプルに基づいて、各ツリーが作成されます。In this method, each tree is grown on a new sample, created by randomly sampling the original dataset with replacement until you have a dataset the size of the original.

      モデルの出力は "投票" (アグリゲーションの一形態) によって結合されます。The outputs of the models are combined by voting, which is a form of aggregation. 分類デシジョン フォレスト内の各ツリーからは、ラベルの頻度ヒストグラムが正規化されていない状態で出力されます。Each tree in a classification decision forest outputs an unnormalized frequency histogram of labels. アグリゲーションによって、これらのヒストグラムを合計し、正規化することによって各ラベルの "確率" を得ることができます。The aggregation is to sum these histograms and normalize to get the “probabilities” for each label. こうして、アンサンブルの最終決定で、予測信頼性の高いツリーに、より大きい重みが与えられます。In this manner, the trees that have high prediction confidence will have a greater weight in the final decision of the ensemble.

      詳細については、Wikipedia でブートストラップ アグリゲーティングに関する項目を参照してください。For more information, see the Wikipedia entry for Bootstrap aggregating.

    • [レプリケート] : レプリケーションでは、各ツリーがまったく同じ入力データでトレーニングされます。Replicate: In replication, each tree is trained on exactly the same input data. それぞれのツリー ノードでどの分割述語が使用されるかの決定はランダムなままであり、ツリーは多様になります。The determination of which split predicate is used for each tree node remains random and the trees will be diverse.

  3. [Create trainer mode](トレーナー モードの作成) オプションを設定して、モデルのトレーニング方法を指定します。Specify how you want the model to be trained, by setting the Create trainer mode option.

    • Single Parameter (単一パラメーター) : モデルの構成方法がわかっている場合、特定の値のセットを引数として渡すことができます。Single Parameter: If you know how you want to configure the model, you can provide a specific set of values as arguments.

    • [Parameter Range](パラメーター範囲) : 最適なパラメーターがわからない場合は、モデルのハイパーパラメーターの調整モジュールを使用することにより、最適なパラメーターを見つけることができます。Parameter Range: If you are not sure of the best parameters, you can find the optimal parameters by using the Tune Model Hyperparameters module. ある値の範囲を指定すると、トレーナーが設定の複数の組み合わせに対して反復処理を行い、最適な結果を生み出す値の組み合わせを決定します。You provide some range of values, and the trainer iterates over multiple combinations of the settings to determine the combination of values that produces the best result.

  4. アンサンブルに作成できるデシジョン ツリーの最大数を [Number of decision trees](デシジョン ツリーの数) に入力します。For Number of decision trees, type the maximum number of decision trees that can be created in the ensemble. 作成するデシジョン ツリーを増やすと、カバレッジが向上する可能性はありますが、トレーニング時間が長くなります。By creating more decision trees, you can potentially get better coverage, but training time increases.

    注意

    トレーニング済みのモデルを可視化したときに表示されるツリーの数も、この値によって制御されます。This value also controls the number of trees displayed when visualizing the trained model. ツリーを 1 つだけ表示または出力したい場合は、この値を「1」に設定できます。If you want to see or print a single tree, you can set the value to 1. ただし、生成できるツリーは 1 つ (最初の一連のパラメーターを備えたツリー) だけであり、それ以上のイテレーションは実行されません。However, only one tree can be produced (the tree with the initial set of parameters) and no further iterations are performed.

  5. [Maximum depth of the decision trees](デシジョン ツリーの最大深度) には、デシジョン ツリーの最大深度を制限する数値を入力します。For Maximum depth of the decision trees, type a number to limit the maximum depth of any decision tree. ツリーの深度を増やすと、精度が向上する可能性があるものの、オーバーフィットが発生しやすくなり、トレーニング時間が長くなるおそれがあります。Increasing the depth of the tree might increase precision, at the risk of some overfitting and increased training time.

  6. [Number of random splits per node](ノードごとのランダム分割数) には、ツリーの各ノードを構築するときに使用する分割数を入力します。For Number of random splits per node, type the number of splits to use when building each node of the tree. "分割" とは、ツリー (ノード) の各レベルの特徴がランダムに分割されることを意味します。A split means that features in each level of the tree (node) are randomly divided.

  7. [Minimum number of samples per leaf node](リーフ ノードごとの最小サンプル数) には、ツリーの終端ノード (リーフ) を作成するうえで必要な最小ケース数を指定します。For Minimum number of samples per leaf node, indicate the minimum number of cases that are required to create any terminal node (leaf) in a tree.

    この値を増やすと、新しいルールを作成するためのしきい値が大きくなります。By increasing this value, you increase the threshold for creating new rules. たとえば、既定値の 1 では、ケースが 1 つであっても新しいルールを作成できます。For example, with the default value of 1, even a single case can cause a new rule to be created. この値を 5 に増やした場合、同じ条件を満たすケースがトレーニング データに少なくとも 5 つ含まれている必要があります。If you increase the value to 5, the training data would have to contain at least five cases that meet the same conditions.

  8. トレーニングまたは検証セットにおける不明な値のグループを作成するには、 [Allow unknown values for categorical features](カテゴリの特徴に不明な値を許可する) オプションを選択します。Select the Allow unknown values for categorical features option to create a group for unknown values in the training or validation sets. 既知の値に対してはモデルの精度が低くなる可能性がある一方、新しい (不明な) 値に対しては予測精度が向上する可能性があります。The model might be less precise for known values, but it can provide better predictions for new (unknown) values.

    このオプションをオフにした場合、モデルに与えることができる値は、トレーニング データに含まれているものに限定されます。If you deselect this option, the model can accept only the values that are contained in the training data.

  9. ラベル付けされたデータセットと、いずれかのトレーニング モジュールをアタッチします。Attach a labeled dataset, and one of the training modules:

    • [Create trainer mode](トレーナー モードの作成)[Single Parameter](単一パラメーター) に設定した場合は、モデルのトレーニング モジュールを使用します。If you set Create trainer mode to Single Parameter, use the Train Model module.

[結果]Results

トレーニングの完了後:After training is complete:

  • トレーニングされたモデルのスナップショットを保存するには、 [モデルのトレーニング] モジュールの右側のパネルにある [出力] タブを選択します。To save a snapshot of the trained model, select the Outputs tab in the right panel of the Train model module. [データセットの登録] アイコンを選択して、再利用可能なモジュールとしてモデルを保存します。Select the Register dataset icon to save the model as a reusable module.

  • このモデルをスコアリングに使用するには、モデルのスコア付けモジュールをパイプラインに追加します。To use the model for scoring, add the Score Model module to a pipeline.

次のステップNext steps

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