ブースト デシジョン ツリー回帰モジュールBoosted Decision Tree Regression module

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

このモジュールを使用し、ブーストで回帰ツリーのアンサンブルを作成します。Use this module to create an ensemble of regression trees using boosting. ブースティングは、各ツリーが前のツリーに依存していることを意味します。Boosting means that each tree is dependent on prior trees. このアルゴリズムは、それに先行するツリーの残差をフィッティングにより学習します。The algorithm learns by fitting the residual of the trees that preceded it. したがって、デシジョン ツリー アンサンブルのブースティングは、適用範囲が狭いという小さなリスクがありますが、精度を上げる傾向があります。Thus, boosting in a decision tree ensemble tends to improve accuracy with some small risk of less coverage.

この回帰メソッドは教師あり学習メソッドであり、そのため、ラベル付きのデータセットを必要とします。This regression method is a supervised learning method, and therefore requires a labeled dataset. ラベル列には数値を含める必要があります。The label column must contain numerical values.

注意

このモジュールは、数値変数を使用するデータセット以外では使用しません。Use this module only with datasets that use numerical variables.

モデルを定義したら、モデルのトレーニングを利用してトレーニングします。After you have defined the model, train it by using the Train Model.

ブースト回帰ツリーの詳細More about boosted regression trees

ブースティングは、バギングやランダム フォレストなどと共に、アンサンブル モデルを作成するための基本的手法の 1 つです。Boosting is one of several classic methods for creating ensemble models, along with bagging, random forests, and so forth. Azure Machine Learning では、ブースト デシジョン ツリーで MART 勾配ブースティング アルゴリズムが効率的に実装されます。In Azure Machine Learning, boosted decision trees use an efficient implementation of the MART gradient boosting algorithm. 勾配ブースティングは、回帰問題のための機械学習手法です。Gradient boosting is a machine learning technique for regression problems. 事前定義された損失関数を使用して各段階のエラーを計測し、次の段階でそれを修正するという方法で各回帰ツリーを段階的に構築します。It builds each regression tree in a step-wise fashion, using a predefined loss function to measure the error in each step and correct for it in the next. したがって、予測モデルは実際、弱い予測モデルのアンサンブルになります。Thus the prediction model is actually an ensemble of weaker prediction models.

回帰の問題では、ブースティングによって一連のツリーが段階的に構築され、任意の微分可能な損失関数を使用して最適なツリーが選択されます。In regression problems, boosting builds a series of trees in a step-wise fashion, and then selects the optimal tree using an arbitrary differentiable loss function.

詳細については、以下の記事を参照してください。For additional information, see these articles:

勾配ブースティング手法は、適切な損失関数で減らして回帰にすることで分類の問題にも使用できます。The gradient boosting method can also be used for classification problems by reducing them to regression with a suitable loss function. 分類タスクにブースト ツリーを実施する方法については、「Two-Class Boosted Decision Tree」(2 クラス ブースト デシジョン ツリー) を参照してください。For more information about the boosted trees implementation for classification tasks, see Two-Class Boosted Decision Tree.

ブースト デシジョン ツリー回帰の構成方法How to configure Boosted Decision Tree Regression

  1. ブースト デシジョン ツリー モジュールをパイプラインに追加します。Add the Boosted Decision Tree module to your pipeline. このモジュールは、 [Machine Learning](機械学習)[Initialize](初期化) の順に進み [Regression](回帰) カテゴリにあります。You can find this module under Machine Learning, Initialize, under the Regression category.

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

    • Single Parameter (単一パラメーター) : モデルの構成方法を決めている場合はこのオプションを選択し、特定の値のセットを引数として渡します。Single Parameter: Select this option if you know how you want to configure the model, and provide a specific set of values as arguments.

    • [Parameter Range](パラメーター範囲) : 最適なパラメーターはわからないが、パラメーター スイープを実行したい場合は、このオプションを選択します。Parameter Range: Select this option if you are not sure of the best parameters, and want to run a parameter sweep. 反復する値の範囲を選択します。モデルのハイパーパラメーターの調整では、指定した設定の可能なすべての組み合わせに対して反復処理を行い、最適な結果を生成するハイパーパラメーターを決定します。Select a range of values to iterate over, and the Tune Model Hyperparameters iterates over all possible combinations of the settings you provided to determine the hyperparameters that produce the optimal results.

  3. [Maximum number of leaves per tree](ツリーあたりの最大リーフ数) :ツリーに作成できる終端ノード (リーフ) の最大数を指定します。Maximum number of leaves per tree: Indicate the maximum number of terminal nodes (leaves) that can be created in any tree.

    この値を増やすと、ツリーのサイズが大きくなって精度が上がる反面、オーバーフィットが発生したり、トレーニング時間が長くなったりするおそれがあります。By increasing this value, you potentially increase the size of the tree and get better precision, at the risk of overfitting and longer training time.

  4. [Minimum number of samples per leaf node](リーフ ノードごとの最小サンプル数) :ツリーの終端ノード (リーフ) を作成するうえで必要なケース数を指定します。Minimum number of samples per leaf node: Indicate the minimum number of cases 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 5 cases that meet the same conditions.

  5. [Learning rate](学習率) :学習時のステップ サイズを定義する 0 から 1 までの数値を入力します。Learning rate: Type a number between 0 and 1 that defines the step size while learning. 学習器がどの程度の速さ (遅さ) で最適解に収束するかは、学習率によって決まります。The learning rate determines how fast or slow the learner converges on the optimal solution. ステップ サイズが大きすぎると、最適解から離れていってしまう可能性があります。If the step size is too big, you might overshoot the optimal solution. ステップ サイズが小さすぎると、トレーニングが最適解に収束するまでの時間が長くなります。If the step size is too small, training takes longer to converge on the best solution.

  6. [Number of trees constructed](構築するツリーの数) :アンサンブルに作成するデシジョン ツリーの総数を指定します。Number of trees constructed: Indicate the total number of decision trees to create 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 に設定できます。ただし、ツリーは 1 つだけ生成され (最初のパラメーター セットが与えられたツリー)、それ以上のイテレーションは実行されません。if you want to see or print a single tree, you can set the value to 1; however, only one tree is produced (the tree with the initial set of parameters) and no further iterations are performed.

  7. Random number seed (乱数シード) : 乱数シード値として使用する負以外の任意の整数を入力します。Random number seed: Type an optional non-negative integer to use as the random seed value. シードを指定することによって、同じデータとパラメーターで繰り返し実行したときの再現性が確保されます。Specifying a seed ensures reproducibility across runs that have the same data and parameters.

    ランダム シードは、既定では 0 に設定されます。これは、初期シード値がシステム クロックから取得されることを意味します。By default, the random seed is set to 0, which means the initial seed value is obtained from the system clock.

  8. トレーニング データセットと次のいずれかのトレーニング モジュールを追加します。Add a training dataset, and one of the training modules:

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

[結果]Results

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

  • スコアリングにモデルを使用するには、それをモデルのスコア付けに接続し、新しい入力例の値を予測します。To use the model for scoring, connect it to Score Model, to predict values for new input examples.

  • トレーニング済みのモデルのスナップショットを保存するには、 [Trained model](トレーニング済みモデル) の右側のパネルの [Outputs](出力) タブを選択し、 [Register dataset](データセットの登録) アイコンをクリックします。To save a snapshot of the trained model, select Outputs tab in the right panel of Trained model and click Register dataset icon. トレーニング済みのモデルのコピーはモジュールとしてモジュール ツリーに保存され、パイプラインの後続の実行では更新されません。The copy of the trained model will be saved as a module in the module tree and will not be updated on successive runs of the pipeline.

次のステップNext steps

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