Bagging
概要
ブートストラップ集約(バギング)は、機械学習アンサンブルメタアルゴリズムであり、安定性と分類精度の観点から分類モデルと回帰モデルを改善します。また、変動を減らし、過剰適合を回避するのに役立ちます。通常、決定木モデルに適用されますが、任意のタイプのモデルで使用できます。
説明
バギング演算子はネストされた演算子です。つまり、サブプロセスがあります。サブプロセスには、学習者、つまりExampleSetを予期してモデルを生成する演算子が必要です。この演算子は、サブプロセスで提供される学習器を使用して、より良いモデルを構築しようとします。この演算子を適用するには、サブプロセスの基本的な理解が必要です。サブプロセスの基本的な理解については、サブプロセス演算子のドキュメントをご覧ください。
バギングの概念(分類への投票、関心のある連続従属変数を持つ回帰型問題の平均化)は、予測データマイニングの領域に適用され、複数のモデルまたは同じタイプのモデルからの予測分類(予測)を組み合わせます異なる学習データ用。また、複雑なモデルを比較的小さなデータセットに適用する場合の結果の固有の不安定性に対処するためにも使用されます。データマイニングタスクが予測分類用のモデルを構築することであり、モデルのトレーニング元のデータセット(観測された分類を含む学習データセット)が比較的小さいとします。データセットからサブサンプル(置換)を繰り返しサブサンプルし、たとえばツリー分類子(たとえば、CHAID)を連続したサンプルに適用できます。実際には、さまざまなサンプルに対して非常に異なるツリーが成長することが多く、小さなデータセットではしばしば明らかなモデルの不安定性を示します。 (新しい観測の)単一の予測を導出する1つの方法は、異なるサンプルで見つかったすべてのツリーを使用し、いくつかの単純な投票を適用することです。予測の加重組み合わせ(加重投票、加重平均)も可能であり、一般的に使用されていることに注意してください。重み付き予測または投票用の重みを生成するための洗練されたアルゴリズムは、AdaBoost演算子としてRapidMinerで使用可能なブースティング手順です。
アンサンブル理論バギングはアンサンブル手法であるため、ここではアンサンブル理論の概要について説明しました。 Ensembleメソッドは、複数のモデルを使用して、構成モデルのいずれかから得られるよりも優れた予測パフォーマンスを取得します。言い換えると、アンサンブルは、強い学習者を生成するために、多くの弱い学習者を組み合わせる手法です。通常、アンサンブルの予測を評価するには、単一のモデルの予測を評価するよりも多くの計算が必要です。そのため、アンサンブルは、多くの余分な計算を実行することにより、貧弱な学習アルゴリズムを補う方法と考えることができます。
アンサンブルはそれ自体が教師あり学習アルゴリズムです。これは、アンサンブルをトレーニングしてから予測を行うために使用できるためです。したがって、訓練された集団は単一の仮説を表します。ただし、この仮説は、それが構築されたモデルの仮説空間に必ずしも含まれるわけではありません。したがって、アンサンブルは、表現できる機能の柔軟性が高いことを示すことができます。この柔軟性により、理論的には、単一のモデルよりもトレーニングデータをオーバーフィットできますが、実際には、いくつかのアンサンブル手法(特にバギング)は、トレーニングデータのオーバーフィットに関連する問題を軽減する傾向があります。
経験的に、アンサンブルは、モデル間に大きな多様性がある場合により良い結果をもたらす傾向があります。したがって、多くのアンサンブルメソッドは、組み合わせたモデル間の多様性を促進しようとします。おそらく直感的ではありませんが、よりランダムなアルゴリズム(ランダムな決定木など)を使用して、非常に意図的なアルゴリズム(エントロピーを削減する決定木など)よりも強いアンサンブルを生成できます。ただし、さまざまな強力な学習アルゴリズムを使用することは、多様性を促進するためにモデルをダムダウンする手法を使用するよりも効果的であることが示されています。
入力
- トレーニングセット (IOObject)この入力ポートには、ExampleSetが必要です。これは、添付のプロセス例のRetrieveオペレーターの出力です。他の演算子の出力も入力として使用できます。
出力
- モデル (袋詰めモデル)メタモデルはこの出力ポートから配信され、ラベル属性の予測のために、見えないデータセットに適用できるようになりました。
- サンプルセット (IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
パラメーター
- sample_ratioこのパラメーターは、トレーニングに使用するサンプルの割合を指定します。その値は0より大きくなければならず(例はゼロ)、1以下(データセット全体)でなければなりません。 範囲:実数
- iterationsこのパラメーターは、バギングアルゴリズムの最大反復回数を指定します。 範囲:整数
- average_confidencesこのパラメーターは、利用可能な予測信頼度を平均するかどうかを指定します。 範囲:ブール
- use_local_random_seedこのパラメーターは、ランダム化にローカルランダムシードを使用する必要があるかどうかを示します。同じ値のローカルランダムシードを使用すると、同じサンプルが生成されます。このパラメーターの値を変更すると、例のランダム化方法が変更されるため、サンプルの値のセットが異なります。 範囲:ブール
- local_random_seedこのパラメータは、 ローカルランダムシードを指定します。このパラメーターは、 ローカルシードの使用パラメーターがtrueに設定されている場合にのみ使用できます。 範囲:整数
チュートリアルプロセス
より良い決定木を生成するためのバギング演算子の使用
「ソナー」データセットは、検索演算子を使用してロードされます。分割検証演算子は、分類モデルのトレーニングとテストのために適用されます。バギング演算子は、スプリット検証演算子のトレーニングサブプロセスで適用されます。決定木演算子は、バギング演算子のサブプロセスで適用されます。バギング演算子の反復パラメーターは10に設定されているため、そのサブプロセスは10回反復されます。モデルの適用演算子は、バギング演算子によって生成されたモデルを適用するためのテストサブプロセスで使用されます。結果のラベル付きExampleSetは、モデルのパフォーマンスを測定するためにパフォーマンス(分類)演算子によって使用されます。分類モデルとそのパフォーマンスベクトルは出力に接続されており、結果ワークスペースで確認できます。 Bagging演算子が各反復で新しいモデルを生成したことがわかります。このモデルの精度は約75.81%であることがわかりました。バギング演算子を使用せずに同じプロセスが繰り返される場合、つまり、トレーニングサブプロセスでデシジョンツリー演算子のみが使用される場合、そのモデルの精度は約66%になります。このように、バギングは基本学習者(つまり、ディシジョンツリー)のパフォーマンスを改善しました。