Gradient Boosted Trees
概要
H2O 3.8.2.6を使用してGBTアルゴリズムを実行します。
詳細
このアルゴリズムの結果は、使用されるスレッドの数に依存する可能性があることに注意してください。設定が異なると、出力がわずかに異なる場合があります。
勾配ブーストモデルは、回帰モデルまたは分類ツリーモデルの集合です。どちらも、漸進的に改善された推定により予測結果を取得する前方学習アンサンブル法です。ブースティングは、ツリーの精度の向上に役立つ柔軟な非線形回帰手順です。漸進的に変更されたデータに弱い分類アルゴリズムを順次適用することにより、一連の決定ツリーが作成され、弱い予測モデルのアンサンブルが生成されます。ツリーをブーストすると精度が向上しますが、速度と人間の解釈可能性も低下します。勾配ブースティング法は、ツリーブースティングを一般化してこれらの問題を最小限に抑えます。
オペレーターは、1ノードのローカルH2Oクラスターを開始し、その上でアルゴリズムを実行します。 1つのノードを使用しますが、実行は並列です。設定/環境設定/一般/スレッド数の設定を変更することにより、並列処理のレベルを設定できます。デフォルトでは、システムに推奨されるスレッド数を使用します。クラスターの1つのインスタンスのみが開始され、RapidMiner Studioを閉じるまで実行され続けます。
入力
- トレーニングセット (IOObject)入力ポートには、ラベル付きのExampleSetが必要です。
出力
- モデルGradient Boosted分類または回帰モデルは、この出力ポートから提供されます。この分類または回帰モデルは、ラベル属性の予測のために、見えないデータセットに適用できます。
- サンプルセット(IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
- 重み(平均ベクトル)このポートは、ラベル属性に関する属性の重みを提供します。
パラメーター
- number_of_treesツリーの数を定義する負でない整数。デフォルトは20です。 範囲:整数
- reproducibleモデルの構築を再現可能にします。設定されている場合、
- maximum_number_of_threads パラメーターは、モデル作成の並列処理レベルを制御します。これが設定されていない場合、並列性レベルは一般設定のスレッド数によって定義されます。 範囲:ブール
- maximum_number_of_threadsモデル作成の並列処理レベルを制御します。 範囲:整数
- use_local_random_seed reproducibleがtrueに設定されている場合にのみ使用できます。ランダム化にローカルランダムシードを使用する必要があるかどうかを示します。 範囲:ブール
- local_random_seedこのパラメーターは、ローカルランダムシードを指定します。このパラメーターは、ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数
- maximal_depthユーザー定義のツリーの深さ。デフォルトは5です。 範囲:整数
- min_rowsターミナルノードに割り当てる行の最小数。デフォルトは10.0です。重み列が指定されている場合、行数にも重みが付けられます。たとえば、ターミナルノードに重みが0.3と0.4の2つの行が含まれる場合、最小行数では0.7としてカウントされます。 範囲:実数
- min_split_improvement分割が発生するための二乗誤差低減の最小相対改善。 範囲:実数
- number_of_bins数値列(実数/整数)の場合、少なくとも指定された数のビンのヒストグラムを作成し、最適なポイントで分割します。デフォルトは20です。 範囲:整数
- learning_rate学習率。学習率が小さいほど、より良いモデルにつながりますが、トレーニングとスコアリングの両方で計算時間が長くなるという代償が伴います。学習率が低いと、反復が多くなります。デフォルトは0.1で、範囲は0.0〜1.0です。 範囲:実数
- sample_rateツリーごとの行サンプルレート( 0.0〜1.0 )。 範囲:実数
- distributionトレーニングデータの分布関数。一部の機能(ツイーディーなど)については、エキスパートパラメーターを使用してさらにチューニングすることができます。
- AUTO:自動選択。名義には多項式を使用し、数値ラベルにはガウスを使用します。
- bernoulli:ベルヌーイ分布。二項または2クラスの多項式ラベルに使用できます。
- gaussian、possion、gamma、tweedie、quantile:回帰の分布関数。
範囲:選択
- early_stopping trueの場合、早期停止のパラメーターを指定する必要があります。 範囲:ブール
- starting_rounds starting_metricの収束に基づく早期停止。イベントをスコアリングするk:= stopping_roundsについて、stopping_metricの長さkの単純な移動平均が改善されない場合は停止します。このパラメーターは、early_stoppingが設定されている場合にのみ表示されます。 範囲:整数
- starting_metric早期停止に使用するメトリック。調整するには、stopping_toleranceを設定します。このパラメーターは、early_stoppingが設定されている場合にのみ表示されます。
- AUTO:自動選択。分類には対数損失、回帰には逸脱を使用します。
- deviance、logloss、MSE、AUC、lift_top_group、r2、誤分類:アルゴリズムを停止するかどうかを決定するために使用するメトリック。
範囲:選択
- starting_toleranceメトリックベースの停止基準の相対的な許容範囲(相対的な改善がこれほど大きくない場合は停止します)。このパラメーターは、early_stoppingが設定されている場合にのみ表示されます。 範囲:実数
- max_runtime_secondsモデルトレーニングの最大許容実行時間(秒)。 0を使用して無効にします。 範囲:整数
- expert_parametersこれらのパラメーターは、アルゴリズムを微調整するためのものです。通常、デフォルト値は適切なモデルを提供しますが、場合によってはそれらを変更すると役立つ場合があります。ブール値パラメーターにはtrue / false値を使用し、列には正確な属性名を使用してください。コンマ(、)文字で値を分割することにより、配列を提供できます。パラメーターの詳細については、H2Oのドキュメントをご覧ください。
- score_each_iteration:モデルトレーニングの各反復中にスコアを付けるかどうか。タイプ:ブール値、デフォルト:false
- score_tree_interval:多数のツリーごとにモデルにスコアを付けます。 0に設定すると無効になります。タイプ:整数、デフォルト:0
- fold_assignment:fold_columnが指定されていない場合のクロス検証フォールド割り当てスキーム。オプション:AUTO、ランダム、モジュロ、成層。タイプ:列挙、デフォルト:AUTO
- fold_column:観測ごとの交差検証フォールドインデックス割り当てを含む列名。タイプ:列、デフォルト:折りたたみ列なし
- offset_column:オフセット列名。タイプ:列、デフォルト:オフセット列なし
- balance_classes:オーバー/アンダーサンプリングを介してトレーニングデータクラスカウントのバランスを取ります(不均衡なデータの場合)タイプ:ブール値、デフォルト:false
- max_after_balance_size:クラスカウントのバランス調整後のトレーニングデータの最大相対サイズ(1.0未満になる場合があります)。 balance_classesが必要です。タイプ:実数、デフォルト:5.0
- max_confusion_matrix_size:ログに印刷される混同マトリックスの最大サイズ(#クラス)。タイプ:整数、デフォルト:20
- nbins_top_level:数値列(実数/整数)の場合、ルートレベルで(最大)この数のビンのヒストグラムを作成し、レベルごとに2倍に減少します。タイプ:整数、デフォルト:1024
- nbins_cats:カテゴリー列(因子)の場合、この多数のビンのヒストグラムを作成し、最適なポイントで分割します。値を大きくすると、過剰適合になります。タイプ:整数、デフォルト:1024
- r2_stopping:R ^ 2メトリックがこれ以上になると、ツリーの作成を停止します。タイプ:double、デフォルト:0.999999
- quantile_alpha:変位値回帰に必要な変位値(0.0から1.0)。タイプ:double、デフォルト:0.5
- tweedie_power:Tweedie Power(1と2の間)。タイプ:double、デフォルト:1.5
- col_sample_rate:列のサンプルレート(0.0〜1.0)。タイプ:double、デフォルト:1.0
- col_sample_rate_per_tree:ツリーごとの列サンプルレート(0.0〜1.0)。タイプ:double、デフォルト:1.0
- keep_cross_validation_predictions:交差検証モデルの予測を保持します。タイプ:ブール値、デフォルト:false
- keep_cross_validation_fold_assignment:クロス検証フォールド割り当てを保持します。タイプ:ブール値、デフォルト:false
- class_sampling_factors:クラスごとに必要なオーバー/アンダーサンプリング比(辞書式順序)。指定しない場合、トレーニング中にクラスバランスを取得するために、サンプリング係数が自動的に計算されます。 balance_classes = trueが必要です。タイプ:float配列、デフォルト:空
- learn_rate_annealing:各ツリーの後に、この係数で学習率を縮小します。タイプ:double、デフォルト:1.0
- sample_rate_per_class:クラスごとのツリーごとの行サンプルレート(0.0から1.0)タイプ:double arary、デフォルト:empty
- col_sample_rate_change_per_level:すべてのレベルの列サンプリングレートの相対的な変化(0.0から2.0)。タイプ:double、デフォルト:1.0
- max_abs_leafnode_pred:葉ノード予測の最大絶対値。タイプ:double、デフォルト:Infinity
- nfolds:交差検定の折り畳みの数。 0を使用して、相互検証をオフにします。タイプ:整数、デフォルト:0
範囲:列挙
チュートリアルプロセス
GBTを使用した分類
H2O GBT演算子は、取引サンプルデータセットのfuture_customer属性を予測するために使用されます。ラベルは公称であるため、分類が実行されます。 GBTパラメーターはわずかに変更されています。実行時間を短縮し、過剰適合を防ぐために、ツリーの数は10に減らされます。同様の理由で、学習率は0.3に増加します。結果のモデルは、Deals_TestsetサンプルデータにGBTモデルを適用するApply Modelオペレーターに接続されます。ラベルが付いたExampleSetは、精度メトリックを計算するパフォーマンス(二項分類)演算子に接続されています。プロセス出力には、パフォーマンスベクトルと勾配ブーストモデルが表示されます。 Gradient Boostedモデルのツリーは、[結果]ビューで確認できます。
GBTを使用した分割検証による分類H2O GBT演算子は、Irisサンプルデータセットのラベル属性を予測するために使用されます。ラベルは多項式であるため、分類が実行されます。学習者のオペレーターは、分類のパフォーマンスを確認できるように、スプリット検証の内側にいます。ツリーの数は10に設定され、他のすべてのパラメーターはデフォルト値のままです。パフォーマンス(分類)演算子は、精度と分類エラーを提供します。 H2Oは一意のラベル値ごとに10個のツリーを作成するため、モデルには30個のツリーが含まれます。
GBTを使用した回帰H2O GBT演算子は、多項式サンプルデータセットのラベル属性を予測するために使用されます。ラベルは実数なので、回帰が実行されます。サンプルデータが取得され、データの分割演算子を使用して2つの部分に分割されます。最初の出力はトレーニングとして使用され、2番目の出力はスコアリングデータセットとして使用されます。 GBTオペレーターの分布パラメーターが「ガンマ」に変更されました。スコアリングExampleSetに適用した後、出力にはGradientBoostedModelとラベル付きデータが含まれます。ラベル付きデータにチャート/シリーズチャートスタイルを選択し、[プロットシリーズ]フィールドでラベルと予測ラベルを選択すると、予測の精度を視覚的に確認できます。