多クラス デシジョン フォレスト コンポーネント

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

"デシジョン フォレスト" アルゴリズムに基づいて機械学習モデルを作成するには、このコンポーネントを使用します。 デシジョン フォレストは、タグ付けされたデータから学習しながら、一連のデシジョン ツリーを迅速に構築するためのアンサンブル モデルです。

デシジョン フォレストの詳細

デシジョン フォレスト アルゴリズムは、分類のためのアンサンブル学習手法です。 このアルゴリズムは、複数のデシジョン ツリーを構築したうえで、最良の出力クラスに投票することで機能します。 投票は集計の一種であり、分類デシジョン フォレスト内の各ツリーからは、ラベルの頻度ヒストグラムが正規化されていない状態で出力されます。 これらのヒストグラムをアグリゲーション プロセスで合計し、結果を正規化することで、各ラベルの "確率" が得られます。 アンサンブルの最終決定では、予測信頼性の高いツリーに、より大きい重みが与えられます。

デシジョン ツリーは、一般的にノンパラメトリック モデルであるため、さまざまな分布のデータをサポートします。 各ツリーで、各クラスに対して一連の単純なテストが実行され、リーフ ノード (デシジョン) に達するまで、ツリー構造のレベルが増加します。

デシジョン ツリーには、次のような多くの利点があります。

  • 非線形の決定境界を表すことができる。
  • トレーニング時と予測時における計算とメモリ使用量の点で効率に優れている。
  • 統合された特徴選択と分類が行われる。
  • ノイズの多い特徴が存在する状況での回復性がある。

Azure Machine Learning のデシジョン フォレスト分類子は、デシジョン ツリーのアンサンブルで構成されます。 一般に、アンサンブル モデルは、単一のデシジョン ツリーと比べ、カバレッジと正確性が優れています。 詳細については、デシジョン ツリーに関するページを参照してください。

多クラス デシジョン フォレストの構成方法

  1. デザイナー内のご利用のパイプラインに多クラス デシジョン フォレスト コンポーネントを追加します。 このコンポーネントは、 [Machine Learning]\(機械学習\)[Initialize]\(初期化\)[分類] にあります。

  2. コンポーネントをダブルクリックして [Properties]\(プロパティ\) ウィンドウを開きます。

  3. [Resampling method]\(再サンプリング方法\) で、個々のツリーの作成に使用される方法を選択します。 バギングまたはレプリケーションから選択できます。

    • [Bagging]\(バギング\) : バギングは、"ブートストラップ アグリゲーティング" とも呼ばれます。 この方法では、元のデータセットを置換しながら、元のサイズになるまでランダムにサンプリングすることによって作成された新しいサンプルに基づいて、各ツリーが作成されます。 モデルの出力は "投票" (アグリゲーションの一形態) によって結合されます。 詳細については、Wikipedia でブートストラップ アグリゲーティングに関する項目を参照してください。

    • [レプリケート] : レプリケーションでは、各ツリーがまったく同じ入力データでトレーニングされます。 それぞれのツリー ノードで使用される分割述語の決定はランダムなままであるため、ツリーは多様になります。

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

    • Single Parameter (単一パラメーター) : モデルの構成方法を決めている場合はこのオプションを選択し、特定の値のセットを引数として渡します。

    • [Parameter Range]\(パラメーター範囲\) : 最適なパラメーターがわからず、パラメーター スイープを実行する場合は、このオプションを選択します。 反復する値の範囲を選択します。モデルのハイパーパラメーターの調整では、指定した設定の可能なすべての組み合わせに対して反復処理を行い、最適な結果を生成するハイパーパラメーターを決定します。

  5. [Number of decision trees]\(デシジョン ツリーの数\) :アンサンブルに作成できるデシジョン ツリーの最大数を入力します。 作成するデシジョン ツリーを増やすと、カバレッジが向上する可能性はありますが、トレーニング時間が長くなるおそれがあります。

    値に 1 を設定した場合であっても、これが意味するのは、生成されるツリーは 1 つ (最初の一連のパラメーターを持ったツリー) だけであり、それ以上のイテレーションは実行されないということです。

  6. [Maximum depth of the decision trees]\(デシジョン ツリーの最大深度\) :デシジョン ツリーの最大深度を制限する数値を入力します。 ツリーの深度を増やすと、精度が向上する可能性があるものの、オーバーフィットが発生しやすくなり、トレーニング時間が長くなるおそれがあります。

  7. [Number of random splits per node]\(ノードごとのランダム分割数\) :ツリーの各ノードを構築するときに使用する分割数を入力します。 "分割" とは、ツリー (ノード) の各レベルの特徴がランダムに分割されることを意味します。

  8. [Minimum number of samples per leaf node]\(リーフ ノードごとの最小サンプル数\) :ツリーの終端ノード (リーフ) を作成するうえで必要なケース数を指定します。 この値を増やすと、新しいルールを作成するためのしきい値が大きくなります。

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

  9. ラベルが付けられたデータセットを接続し、モデルをトレーニングします。

    Note

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

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

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

  10. パイプラインを送信します。

次のステップ

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