2 クラス ブースト デシジョン ツリー コンポーネント

この記事では Azure Machine Learning デザイナーのコンポーネントについて説明します。

ブースト デシジョン ツリー アルゴリズムに基づく機械学習モデルを作成するには、このコンポーネントを使用します。

ブースト デシジョン ツリーは、第 2 のツリーで第 1 のツリーの誤差を補正し、第 3 のツリーで第 1 および第 2 のツリーの誤差を補正するといったアンサンブル学習手法です。 予測は、それぞれが予測を行うツリーの集団全体に基づいて行われます。

一般に、ブースト デシジョン ツリーは、適切に構成されていれば、多様な機械学習タスクで最良のパフォーマンスが一番簡単に得られる手法です。 ただしメモリの使用量が最も多い学習器の 1 つでもあり、現在の実装では、すべてのデータがメモリに保持されます。 そのため、いくつかの線形学習器で処理できる大規模なデータセットが、ブースト デシジョン ツリー モデルでは処理できない可能性があります。

このコンポーネントは、LightGBM アルゴリズムに基づいています。

構成方法

このコンポーネントでは、トレーニングされていない分類モデルが作成されます。 分類は教師あり学習手法であるため、モデルをトレーニングするためには、ラベル列のすべての行に値を含んだ "タグ付けされたデータセット" が必要です。

このタイプのモデルは、"モデルのトレーニング" を使用してトレーニングできます。

  1. Azure Machine Learning で、ブースト デシジョン ツリー コンポーネントをパイプラインに追加します。

  2. [Create trainer mode]\(トレーナー モードの作成\) オプションを設定して、モデルのトレーニング方法を指定します。

    • Single Parameter (単一パラメーター) : モデルの構成方法がわかっている場合、特定の値のセットを引数として渡すことができます。

    • [Parameter Range](パラメーター範囲) 最適なパラメーターがわからない場合は、モデルのハイパーパラメーターの調整コンポーネントを使用することにより、最適なパラメーターを見つけることができます。 ある値の範囲を指定すると、トレーナーが設定の複数の組み合わせに対して反復処理を行い、最適な結果を生み出す値の組み合わせを決定します。

  3. ツリーに作成できる終端ノード (リーフ) の最大数を [Maximum number of leaves per tree]\(ツリーあたりの最大リーフ数\) に指定します。

    この値を増やすと、ツリーのサイズが大きくなって精度が上がる反面、オーバーフィットが発生したり、トレーニング時間が長くなったりするおそれがあります。

  4. [Minimum number of samples per leaf node]\(リーフ ノードごとの最小サンプル数\) には、ツリーの終端ノード (リーフ) を作成するうえで必要なケース数を指定します。

    この値を増やすと、新しいルールを作成するためのしきい値が大きくなります。 たとえば、既定値の 1 では、ケースが 1 つであっても新しいルールを作成できます。 この値を 5 に増やした場合、同じ条件を満たすケースがトレーニング データに少なくとも 5 つ含まれている必要があります。

  5. 学習時のステップ サイズを定義する 0 から 1 までの数値を [Learning rate]\(学習率\) に入力します。

    学習器がどの程度の速さ (遅さ) で最適解に収束するかは、学習率によって決まります。 ステップ サイズが大きすぎると、最適解から離れていってしまう可能性があります。 ステップ サイズが小さすぎると、トレーニングが最適解に収束するまでの時間が長くなります。

  6. 集団として作成するデシジョン ツリーの総数を [Number of trees constructed]\(構築するツリーの数\) に指定します。 作成するデシジョン ツリーを増やすと、カバレッジが向上する可能性はありますが、トレーニング時間が長くなります。

    値に 1 を設定した場合、生成されるツリーは 1 つ (最初の一連のパラメーターを持ったツリー) だけであり、それ以上のイテレーションは実行されません。

  7. [Random number seed]\(乱数シード\) に、ランダム シード値として使用する値 (負でない整数) を必要に応じて入力します。 シードを指定することによって、同じデータとパラメーターで繰り返し実行したときの再現性が確保されます。

    ランダム シードは、既定では 0 に設定されます。これは、初期シード値がシステム クロックから取得されることを意味します。 ランダム シードを使用して連続実行すると、都度異なる結果を得ることができます。

  8. モデルをトレーニングする:

    Note

    パラメーター範囲を [モデルのトレーニング] に渡すと、単一のパラメーター リストの既定値のみが使用されます。

    [モデルのハイパーパラメーターの調整] コンポーネントによって、パラメーターごとに設定の範囲が求められているとき、それに単一のパラメーター値セットを渡した場合、それらの値は無視され、学習器の既定値が使用されます。

    [Parameter Range]\(パラメーター範囲\) オプションを選択し、任意のパラメーターに単一の値を入力した場合、指定した単一の値はスイープ全体で使用されます。これは、他のパラメーターが値の範囲の中で変化する場合でも同様です。

結果

トレーニングの完了後:

  • トレーニングされたモデルのスナップショットを保存するには、 [モデルのトレーニング] コンポーネントの右側のパネルにある [出力] タブを選択します。 [データセットの登録] アイコンを選んで、再利用可能なコンポーネントとしてモデルを保存します。

  • このモデルをスコアリングに使用するには、モデルのスコア付けコンポーネントをパイプラインに追加します。

次の手順

Azure Machine Learning で使用できる一連のコンポーネントを参照してください。