Bayesian Boosting
概要
この演算子は、ベイズの定理に基づいたブースティング演算子です。パフォーマンスを改善するために、他の多くの学習アルゴリズムと組み合わせて使用できるメタアルゴリズムを実装しています。
詳細
ベイジアンブースティング演算子はネストされた演算子です。つまり、サブプロセスがあります。サブプロセスには、学習者、つまりExampleSetを予期してモデルを生成する演算子が必要です。この演算子は、サブプロセスで提供される学習器を使用して、より良いモデルを構築しようとします。この演算子を適用するには、サブプロセスの基本的な理解が必要です。サブプロセスの基本的な理解については、サブプロセス演算子のドキュメントをご覧ください。
この演算子は、ブールターゲット属性の分類子のアンサンブルをトレーニングします。反復ごとにトレーニングセットの重み付けが変更されるため、以前に発見されたパターンやその他の種類の事前知識が「サンプリング」されます。通常はルールまたは決定木誘導アルゴリズムである内部分類子が連続して数回適用され、モデルは単一のグローバルモデルに結合されます。トレーニングするモデルの最大数は、 繰り返しパラメーターによって指定されます。
再スケールラベルの事前分布パラメータがtrueに設定されている場合は、ExampleSetは、すべてのクラスが等しい確率(あるいは頻繁に)あるのでこと、再重み付けされます。 2クラスの問題の場合、これにより、モデルの近似の問題が重み付けされた相対精度を最大化して、分類器誘導のより一般的なタスクに変わります。ルール学習アルゴリズムを内部学習者として適用すると、サブグループの発見が可能になります。このオプションは、判定スタンプのような非常に弱い学習器が使用される場合、クラススキューのあるデータセットにも推奨されます。 再スケールラベルの優先順位パラメーターが設定されていない場合、オペレーターは確率推定に基づいてブースティングを実行します。
[ 周辺スキューを許可]パラメーターが設定されていない場合、一般的なベースモデル予測に関して定義された各サブセットのサポートは、反復ごとに変わりません。同様に、クラスの優先順位は変更されません。これは、サブグループ検出のコンテキストで「Scholz / 2005b」で最初に説明された手順です。 allow marginal skewsオプションをtrueに設定すると、ブーストコンテキストで有益な場合にサブセットの周辺の重み/確率を変更し、2つのクラスを同じように層化する手順になります。 AdaBoostに関しては、この場合、総重量がトレーニングエラーの上限になります。この限界は、ベイジアンブースティング演算子によってより迅速に削減されます。
サブグループ検出用の「Scholz / 2005b」からシーケンシャルサンプリングまたは知識ベースサンプリングを再現するには、この演算子の2つのデフォルトパラメータ設定を変更する必要があります。 ラベルの事前確率を再スケールし、マージナルスキューを許可する必要があります。 falseに設定されます。さらに、ブール(二項)ラベルを使用する必要があります。
この演算子には、入力としてExampleSetが必要です。異なる形式の事前知識を抽出するために、別のモデルをオプションの追加入力として提供することができます。このモデルの予測は、トレーニングセットの初期重み付けを生成するために使用されます。演算子の出力は、条件付きクラス確率の推定または単純な鮮明な分類に適用可能な分類モデルです。指定された数までの内部ベースモデルが含まれます。オプションの初期モデルの場合、このモデルは出力モデルにも保存され、モデル適用中に同じ初期重みが生成されます。
アンサンブル理論のブースティングはアンサンブル手法であるため、ここではアンサンブル理論の概要について説明しました。 Ensembleメソッドは、複数のモデルを使用して、構成モデルのいずれかから得られるよりも優れた予測パフォーマンスを取得します。言い換えると、アンサンブルは、強い学習者を生成するために、多くの弱い学習者を組み合わせる手法です。通常、アンサンブルの予測を評価するには、単一のモデルの予測を評価するよりも多くの計算が必要です。そのため、アンサンブルは、多くの余分な計算を実行することにより、貧弱な学習アルゴリズムを補う方法と考えることができます。
アンサンブルはそれ自体が教師あり学習アルゴリズムです。これは、アンサンブルをトレーニングしてから予測を行うために使用できるためです。したがって、訓練された集団は単一の仮説を表します。ただし、この仮説は、それが構築されたモデルの仮説空間に必ずしも含まれるわけではありません。したがって、アンサンブルは、表現できる機能の柔軟性が高いことを示すことができます。この柔軟性により、理論的には、単一のモデルよりもトレーニングデータをオーバーフィットできますが、実際には、いくつかのアンサンブル手法(特にバギング)は、トレーニングデータのオーバーフィットに関連する問題を軽減する傾向があります。
経験的に、アンサンブルは、モデル間に大きな多様性がある場合により良い結果をもたらす傾向があります。したがって、多くのアンサンブルメソッドは、組み合わせたモデル間の多様性を促進しようとします。おそらく直感的ではありませんが、よりランダムなアルゴリズム(ランダムな決定木など)を使用して、非常に意図的なアルゴリズム(エントロピーを削減する決定木など)よりも強いアンサンブルを生成できます。ただし、さまざまな強力な学習アルゴリズムを使用することは、多様性を促進するためにモデルをダムダウンする手法を使用するよりも効果的であることが示されています。
入力
- トレーニングセット (IOObject)この入力ポートには、ExampleSetが必要です。これは、添付のプロセス例のRetrieveオペレーターの出力です。他の演算子の出力も入力として使用できます。
- モデル (モデル)入力ポートにはモデルが必要です。これはオプションのポートです。異なるフォームの事前知識をサンプリングするために、オプションの入力としてモデルを提供することが可能です。このモデルの予測は、トレーニングセットの初期重み付けを生成するために使用されます。演算子の出力は、条件付きクラス確率の推定または単純な鮮明な分類に適用可能な分類モデルです。指定された数までの内部ベースモデルが含まれます。オプションの初期モデルの場合、このモデルは出力モデルにも保存され、モデルの適用中に同じ初期重みが生成されます。
出力
- (ベイジアンブースティングモデル)メタモデルはこの出力ポートから配信され、ラベル属性の予測のために、見えないデータセットに適用できるようになりました。
- サンプルセット(IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
パラメーター
- use_subset_for_trainingこのパラメーターは、トレーニングに使用されるサンプルの割合を指定します。残りのサンプルは、混同マトリックスの推定に使用されます。 1に設定すると、テストセットはオフになります。 範囲:実数
- iterationsこのパラメーターは、このアルゴリズムの最大反復回数を指定します。 範囲:整数
- rescale_label_priorsこのパラメーターは、最初の反復後、構築によってラベルの割合を等しくするかどうかを指定します。このパラメーターの詳細については、この演算子の説明をご覧ください。 範囲:ブール
- allow_marginal_skewsこのパラメーターは、学習中に周辺分布のゆがみ (P(x))を許可するかどうかを指定します。このパラメーターの詳細については、この演算子の説明をご覧ください。 範囲:ブール
- use_local_random_seedこのパラメーターは、ランダム化にローカルランダムシードを使用する必要があるかどうかを示します。同じ値のローカルランダムシードを使用すると、同じサンプルが生成されます。このパラメーターの値を変更すると、例のランダム化方法が変更されるため、サンプルの値のセットが異なります。 範囲:ブール
- local_random_seedこのパラメータは、 ローカルランダムシードを指定します。このパラメーターは、 ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数
チュートリアルプロセス
より良いデシジョンツリーを生成するためのベイジアンブースティング演算子の使用
「ソナー」データセットは、検索演算子を使用してロードされます。分割検証演算子は、分類モデルのトレーニングとテストのために適用されます。 Bayesian Boostingオペレーターは、Split Validationオペレーターのトレーニングサブプロセスに適用されます。ディシジョンツリー演算子は、ベイジアンブースティング演算子のサブプロセスで適用されます。ベイジアンブースティング演算子の反復パラメーターは10に設定されているため、そのサブプロセスの反復は最大で10になります。モデルの適用演算子は、ベイジアンブースティング演算子によって生成されたモデルを適用するためのテストサブプロセスで使用されます。結果のラベル付きExampleSetは、モデルのパフォーマンスを測定するためにパフォーマンス(分類)演算子によって使用されます。分類モデルとそのパフォーマンスベクトルは出力に接続され、結果ワークスペースで確認できます。 Bayesian Boostingオペレーターが各反復で新しいモデルを作成したことがわかります。このモデルの精度は約67.74%です。ベイズブースティング演算子を使用せずに同じプロセスが繰り返される場合、つまり、サブツリーのトレーニングではデシジョンツリー演算子のみが使用されます。そのモデルの精度は約66%です。したがって、Bayesian Boostingは、元のモデルよりもパフォーマンスの良いモデルの組み合わせを生成しました。