デシジョン フォレスト回帰
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください。
ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
デシジョン フォレスト アルゴリズムを使用して回帰モデルを作成します
カテゴリ: モデルの初期化 - 回帰
注意
適用対象: Machine Learning Studio (クラシック) のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
モジュールの概要
この記事では、Machine Learning Studio (クラシック) の Decision Forest Regression モジュールを使用して、意思決定ツリーのアンサンブルに基づいて回帰モデルを作成する方法について説明します。
モデルの構成後、ラベル付けされたデータセットとモデルのトレーニング モジュールを使用してそのモデルをトレーニングする必要があります。 その後、トレーニング済みのモデルは、予測に使用できます。 または、トレーニングされていないモデルをモデルのクロス検証に渡して、ラベル付きデータ セットに対するクロス検証を行います。
回帰タスクでの意思決定フォレストの動作
デシジョン ツリーは、リーフ ノード (決定) に到達するまでバイナリ ツリーのデータ構造を走査しながら、個々の事例について一連の単純なテストを行うノンパラメトリックなモデルです。
デシジョン ツリーには、次の利点があります。
トレーニング時と予測時における計算とメモリ使用量の両方の点で効率に優れている。
非線形の決定境界を表すことができる。
統合された特徴選択と分類が行われ、ノイズの多い特徴が存在する状況での回復性がある。
この回帰モデルは、複数のデシジョン ツリーの集団から成ります。 回帰デシジョン フォレストに含まれる各ツリーからは、予測としてガウス分布が出力されます。 ツリーの集団に対して集計 (アグリゲーション) を行うことによって、モデルに含まれる全ツリーの分布の組み合わせに最も近いガウス分布を見つけ出します。
このアルゴリズムの理論上のフレームワークとその実装の詳細については、次の記事を参照してください: Decision Forests: A Unified Framework for Classification, Regression, Density Estimation, Estimation ラーニング and Semi-Supervised ラーニング
デシジョン フォレスト回帰モデルを構成する方法
デシジョン フォレスト回帰モジュールを実験に追加します。 このモジュールは、Studio (クラシック) の [モデルの初期化Machine Learning回帰] の下に表示されます。
モジュールのプロパティを開き、 [Resampling method]\(再サンプリング方法\) で、個々のツリーの作成に使用する方法を選択します。 [Bagging]\(バギング\) または [レプリケート] から選択できます。
[Bagging]\(バギング\) : バギングは、"ブートストラップ アグリゲーティング" とも呼ばれます。 回帰デシジョン フォレストに含まれる各ツリーからは、予測の手段としてガウス分布が出力されます。 アグリゲーションとは、個々のツリーから返された全ガウス分布の組み合わせによって得られるガウス分布の融合体のモーメントと最初の 2 つのモーメントが一致するガウス分布を見つけ出すことです。
詳細については、Wikipedia でブートストラップ アグリゲーティングに関する項目を参照してください。
[レプリケート] : レプリケーションでは、各ツリーがまったく同じ入力データでトレーニングされます。 それぞれのツリー ノードでどの分割述語が使用されるかの決定はランダムなままであり、ツリーは多様になります。
[レプリケート] オプションを使用したトレーニング プロセスの詳細については、次の書籍を参照してください: 『Decision Forests for Computer Vision and Medical Image Analysis』(Criminisi および J. Shotton 共著、Springer 2013)。
[Create trainer mode]\(トレーナー モードの作成\) オプションを設定して、モデルのトレーニング方法を指定します。
[Single Parameter]\(単一パラメーター\)
モデルの構成方法がわかっている場合、特定の値のセットを引数として渡すことができます。 これらの値は、実験によって得られるか、またはガイダンスとして得られます。
パラメーターの範囲
最適なパラメーターが分からない場合は、複数の値を指定し、パラメーター スイープを使用して最適な構成を見つけると、最適なパラメーターを見つける可能性があります。
モデルハイパーパラメーターの調整では 、指定した設定のすべての可能な組み合わせを反復処理し、最適な結果を生成する設定の組み合わせを決定します。
集団として作成するデシジョン ツリーの総数を [Number of decision trees]\(デシジョン ツリーの数\) に指定します。 作成するデシジョン ツリーを増やすと、カバレッジが向上する可能性はありますが、トレーニング時間が長くなります。
ヒント
トレーニング済みのモデルを可視化したときに表示されるツリーの数も、この値によって制御されます。 ツリーを 1 つだけ表示または出力したい場合は、この値を「1」に設定してください。ただしその場合、生成されるツリーは 1 つ (最初の一連のパラメーターを持ったツリー) だけであり、それ以上のイテレーションは実行されません。
[Maximum depth of the decision trees]\(デシジョン ツリーの最大深度\) には、デシジョン ツリーの最大深度を制限する数値を入力します。 ツリーの深度を増やすと、精度が向上する可能性があるものの、オーバーフィットが発生しやすくなり、トレーニング時間が長くなるおそれがあります。
[Number of random splits per node]\(ノードごとのランダム分割数\) には、ツリーの各ノードを構築するときに使用する分割数を入力します。 "分割" とは、ツリー (ノード) の各レベルの特徴がランダムに分割されることを意味します。
[Minimum number of samples per leaf node]\(リーフ ノードごとの最小サンプル数\) には、ツリーの終端ノード (リーフ) を作成するうえで必要な最小ケース数を指定します。
この値を増やすと、新しいルールを作成するためのしきい値が大きくなります。 たとえば、既定値の 1 では、ケースが 1 つであっても新しいルールを作成できます。 この値を 5 に増やした場合、同じ条件を満たすケースがトレーニング データに少なくとも 5 つ含まれている必要があります。
トレーニングまたは検証セットにおける不明な値のグループを作成するには、[Allow unknown values for categorical features]\(カテゴリの特徴に不明な値を許可する\) オプションを選択します。
これを選択解除した場合、モデルはトレーニング データに含まれる値のみを受け入れることができます。 前者の場合、既知の値に対するモデルの精度は低下するものの、新しい (不明な) 値に対する予測精度は向上する可能性があります。
Connectデータセットを作成するには、2 つ以下の結果を含む 1 つのラベル列を選択し、[モデルのトレーニング] または [モデルの調整] ハイパーパラメーターを接続します。
[Create trainer mode]\(トレーナー モードの作成\) オプションを [Single Parameter]\(単一パラメーター\) に設定した場合は、モデルのトレーニング モジュールを使用してモデルをトレーニングします。
[トレーナー モード の作成] オプションを[パラメーター範囲] に設定した場合は、モデルハイパーパラメーターの調整を使用して モデルをトレーニングします。
実験を実行します。
結果
トレーニングの完了後:
それぞれのイテレーションで作成されたツリーを表示するには、トレーニング モジュールの出力を右クリックし、[Visualize]\(可視化\) を選択します。
各ノードのルールを表示するには、各ツリーをクリックして、分割をドリルダウンします。
トレーニング済みモデルのスナップショットを保存するには、トレーニング モジュールの出力を右クリックし、[ トレーニング済みモデルとして保存 ] を選択します。 実験を連続実行しても、このモデルのコピーは更新されません。
例
回帰モデルの例については、次のサンプル実験を「Cortana Intelligence Gallery」を参照してください。
回帰モデルの比較のサンプル: いくつかの異なる種類の回帰モデルを比較します。
感情分析のサンプル: 複数の異なる回帰モデルを使用して、予測された評価を生成します。
テクニカル ノート
このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。
モデルのトレーニングにパラメーター範囲を渡 した場合、パラメーター範囲リストの最初の値だけが使用されます。
単一のパラメーター値のセットを Tune Model Hyperparameters モジュールに渡した場合、各パラメーターの設定範囲が必要な場合、その値は無視され、学習器の既定値が使用されます。
[パラメーター 範囲] オプション を選択し、任意のパラメーターに 1 つの値を入力した場合、他のパラメーターが値の範囲にわたって変更された場合でも、指定した 1 つの値がスイープ全体で使用されます。
使用上のヒント
データが制限されている場合や、モデルのトレーニング時間を最小限に抑えたい場合は、次の設定を試してください。
トレーニング セットの制限。 トレーニング セットに限られた数のインスタンスが含まれている場合は次のようにします。
多数 (たとえば、20 を超える) のデシジョン ツリーを使用してデシジョン フォレストを作成します
バギング オプションを使用して再サンプリングします
ノードごとに多数の (たとえば、1,000 を超える) ランダム分割を指定します
トレーニング時間の制限。 トレーニング セットに多数のインスタンスが含まれており、トレーニング時間が制限されている場合は次のようにします。
より少数 (たとえば、5 ~ 10) のデシジョン ツリーを使用してデシジョン フォレストを作成します
レプリケート オプションを使用して再サンプリングします
(たとえば 100 未満の) 少数のランダム分割をノードごとに指定します
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
再サンプリング方法 | any | ResamplingMethod | バギング | 再サンプリング方法を選択します |
デシジョン ツリーの数 | >=1 | Integer | 8 | アンサンブル内に作成するデシジョン ツリーの数を指定します |
デシジョン ツリーの最大深度 | >=1 | Integer | 32 | アンサンブルで作成可能な任意のデシジョン ツリーの最大の深さを指定します。 |
ノードごとのランダム分割の数 | >=1 | Integer | 128 | ノードごとに生成される分割の数を指定します (最適な分割が選択されます) |
リーフ ノードごとのサンプルの最小数 | >=1 | Integer | 1 | リーフ ノードの生成に必要なトレーニング サンプルの最小数を指定します |
カテゴリ型の特徴の不明な値を許可する | any | Boolean | true | 既存のカテゴリ型の特徴の不明な値を新しい追加の特徴にマップできるかどうかを示します |
出力
名前 | 型 | 説明 |
---|---|---|
未トレーニング モデル | ILearner インターフェイス | 未トレーニング回帰モデル |
こちらもご覧ください
Regression (回帰)