Random Forest
概要
この演算子は、分類および回帰に使用できるランダムフォレストモデルを生成します。
詳細
ランダムフォレストは、ツリー数パラメーターで指定された一定数のランダムツリーの集合です。これらのツリーは、入力ポートで提供されるExampleSetのブートストラップされたサブセットで作成/トレーニングされます。ツリーの各ノードは、特定の1つの属性の分割ルールを表します。 サブセットのみ比基準で指定された属性のサブセットは、分割ルール選択のために考慮されます。このルールは、選択されたパラメータ基準に最適な方法で値を分離します。分類では、ルールは異なるクラスに属する値を分離しますが、回帰では、推定による誤差を減らすために値を分離します。新しいノードの構築は、停止条件が満たされるまで繰り返されます。
生成後、モデルの適用演算子を使用して、ランダムフォレストモデルを新しいサンプルに適用できます。各ランダムツリーは、分割ルールに従ってツリーのブランチをたどり、リーフを評価することにより、各例の予測を生成します。クラス予測は例の大部分に基づいていますが、推定値はリーフに到達する値の平均から取得されます。結果のモデルは、作成されたすべてのランダムツリーの投票モデルです。すべての単一の予測は等しく重要であると見なされ、例のサブセットに基づいているため、結果の予測は単一の予測よりもばらつきが少ない傾向があります。
プルーニングと呼ばれる概念を活用して、サブツリーを置き換えることでモデルの複雑さを軽減できます。さまざまなタイプのプルーニングについては、パラメーターの説明を参照してください。
極端にランダム化されたツリーは、ランダムフォレストに似た方法であり、 分割ランダムパラメーターをチェックし、 プルーニングを無効にすることで取得できます。この方法で調整する重要なパラメーターは、 最小リーフサイズと分割比です 。これらは、 推測分割比を無効にした後に変更できます。 最小リーフサイズの適切なデフォルトの選択肢は、分類の場合は2、回帰問題の場合は5です。
分化
決定木
ディシジョンツリーオペレーターは1つのツリーを作成します。このツリーでは、選択した基準に関して最適なものを選択するために、すべての属性が各ノードで使用できます。 1つのツリーのみが生成されるため、予測は人間にとってよりわかりやすいですが、過剰なトレーニングにつながる可能性があります。
バギング
ブートストラップ集約(バギング)は、機械学習アンサンブルメタアルゴリズムであり、安定性と分類精度の観点から分類モデルと回帰モデルを改善します。また、変動を減らし、「過剰適合」を回避するのに役立ちます。通常、決定木モデルに適用されますが、任意のタイプのモデルで使用できます。ランダムフォレストは、ランダムツリーでのバギングを使用します。
勾配ブースト木
Gradient Boosted Trees Operatorは、単一のツリーモデルを繰り返し改善することでモデルをトレーニングします。各反復ステップの後、例は以前の予測に基づいて再重み付けされます。最終モデルは、作成されたすべてのモデルの加重合計です。トレーニングパラメータは、行われたエラーによって記述される関数の勾配に基づいて最適化されます。
入力
- トレーニングセット (IOObject)ランダムフォレストモデルの生成に使用される入力データ。
出力
- (ランダムフォレストモデル)ランダムフォレストモデルは、この出力ポートから配信されます。
- サンプルセット(IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。
- 重み(平均ベクトル)属性と重み値を含むExampleSet。各重みは、指定された属性の機能の重要度を表します。重みは、ノードで提供される特定の属性の選択の改善の合計によって与えられます。改善の程度は、選択した基準に依存します。
パラメーター
- number_of_treesこのパラメータは、生成するランダムツリーの数を指定します。各ツリーについて、例のサブセットがブートストラップを介して選択されます。パラメータ「 並列実行を有効にする」がチェックされている場合、ツリーは利用可能なプロセッサスレッド全体で並列にトレーニングされます。範囲:
- criterion 属性が分割のために選択される基準を選択します。これらの各基準について、選択された基準に関して分割値が最適化されます。次の値のいずれかを指定できます。
- information_gain:すべての属性のエントロピーが計算され、エントロピーが最小の属性が分割用に選択されます。この方法には、多数の値を持つ属性を選択する傾向があります。
- gain_ratio:各属性の情報ゲインを調整して、属性値の幅と均一性を可能にする情報ゲインのバリアント。
- gini_index:ラベル特性の分布間の不平等の尺度。選択した属性で分割すると、結果のサブセットの平均ジニインデックスが減少します。
- 精度:分割する属性が選択され、ツリー全体の精度が最大化されます。
- least_square:分割のために属性が選択されます。これにより、真の値に関してノード内の値の平均間の距離の2乗が最小になります。
範囲:
- maximal_depthツリーの深さは、ExampleSetのサイズと特性によって異なります。このパラメーターは、各ランダムツリーの深さを制限するために使用されます。値が「-1」に設定されている場合、 最大深度パラメーターは木の深度に制限を設けません。この場合、他の停止基準が満たされるまで、すべてのツリーが構築されます。値が「1」に設定されている場合、単一ノードを持つツリーのみが生成されます。範囲:
- apply_prepruningこのパラメーターは、決定木の生成中に最大深度より多くの停止基準を使用するかどうかを指定します。チェックした場合、パラメーター最小ゲイン 、 最小リーフサイズ 、 分割の最小サイズ、およびプリプルニングの代替の数が停止基準として使用されます。範囲:
- minimal_gainノードのゲインは、分割する前に計算されます。ノードのゲインが最小ゲインより大きい場合、ノードは分割されます。 最小ゲインの高い値は、より少ない分割、したがってより小さな木をもたらします。値が高すぎると、分割が完全に妨げられ、単一ノードのツリーが生成されます。範囲:
- minimal_leaf_size葉のサイズは、そのサブセット内の例の数です。ランダムフォレストのツリーは、すべてのリーフが少なくとも例の最小リーフサイズ数を持つように生成されます。範囲:
- minimal_size_for_splitノードのサイズは、サブセット内のサンプルの数です。 サイズがsplitパラメーターの最小サイズ以上のノードのみが分割されます。範囲:
- number_of_prepruning_alternatives特定のノードでprepruningによって分割が防止されると、このパラメーターは分割のためにテストされる代替ノードの数を調整します。 prepruningがツリー生成プロセスと並行して実行されると発生します。これにより、特定のノードでの分割がツリー全体の識別力を増やさない場合、特定のノードでの分割を防ぐことができます。このような場合、代替ノードが分割のために試行されます。範囲:
- apply_pruningランダムフォレストモデルのランダムツリーは、生成後に削除できます。チェックすると、 信頼性パラメータに応じて、一部のブランチがリーフに置き換えられます。このパラメーターは、「least_square」基準には使用できません。範囲:
- minimal_gain このパラメーターは、枝刈りの悲観的誤差計算に使用される信頼レベルを指定します。範囲:
- random_splits チェックした場合、このパラメーターにより、数値属性の分割が最適化されずにランダムに選択されます。ランダム選択では、現在の属性の最小値と最大値の間で均一なサンプリングが実行されます。 プルーニングを無効にしてこのパラメーターをアクティブにすると、ランダムフォレストが非常にランダムなツリー(エクストラツリーとも呼ばれる)になるように構成されます。これにより、モデル構築プロセスも高速化されます。範囲:
- guess_subset_ratioこのパラメーターがtrueに設定されている場合、* int(log(m)+ 1) 属性が使用されます。 そうでない場合、サブセット比率*パラメーターで比率を指定する必要があります。範囲:
- subset_ratioこのパラメーターは、テストするランダムに選択された属性の比率を指定します。範囲:
- voting_strategy反対のツリーモデル予測の場合の予測戦略を指定します。このパラメーターは、「least_square」基準には使用できません。
- Confidence_vote:累積信頼度が最も高いクラスを選択します。
- Major_vote:大部分のツリーモデルによって予測されたクラスを選択します。
範囲:
- use_local_random_seedこのパラメーターは、 ローカルランダムシードをランダム化に使用する必要があるかどうかを示します。範囲:
- local_random_seed[ ローカルランダムシードの使用]パラメーターがオンの場合、このパラメーターはローカルランダムシードを決定します。範囲:
- enable_parallel_executionこのパラメーターは、使用可能なすべてのCPUスレッド間でランダムツリー生成を分散することにより、モデル構築プロセスの並列実行を可能にします。メモリの問題が発生した場合は、並列実行を無効にしてください。範囲:
チュートリアルプロセス
ランダムフォレストオペレーターを使用したランダムツリーのセットの生成
このチュートリアルプロセスでは、「ゴルフ」データセットを取得し、10個のランダムツリーで分類するためのランダムフォレストのトレーニングに使用します。生成されたモデルは、後でテストデータセットに適用されます。結果の予測、生成されたモデル、およびオペレーターによって提供された機能の重要度の値が表示されます。
モデルオペレーターの適用 ‘lab’ポートの出力を確認すると、ラベルデータセットと、モデルを未表示のデータセットに適用することで得られた予測が表示されます。モデルを検査すると、ランダムフォレストを構築し、予測プロセスに寄与する10個のランダムツリーのコレクションが表示されます。 Random Forest Operatorからの「wei」ポートの出力を調べると、属性の重みに関する情報が提供されます。これらの重みには、ランダムフォレストの全体的な決定に対する属性の予測力に関する重要度の値が含まれます。
回帰用のランダムフォレストこのチュートリアルプロセスでは、ランダムフォレストが回帰に使用されます。数値ターゲット属性を持つ「多項式」データセットがラベルとして使用されます。モデルをトレーニングする前に、データセットはトレーニングセットとテストセットに分割されます。その後、パフォーマンス値(回帰)演算子を使用してパフォーマンス値を取得するために、回帰値がラベル値と比較されます。
決定木とランダムフォレストの比較このチュートリアルプロセスでは、決定木とランダムフォレストの違いを強調した比較が表示されます。 「多項式」サンプルデータセットは、トレーニングセットとテストセットに分割されます。その後、各トレーニングデータセットを使用して、決定木と回帰用のランダムフォレストモデルを生成します。モデルをテストデータセットに適用してパフォーマンスを評価すると、両方の方法がテストデータに適用した場合に結果の偏差が異なる類似した結果を提供することがわかります。