Stacking
概要
この演算子は、モデルを選択するのではなく、モデルを結合するために使用されるスタッキングの実装です。これにより、通常、トレーニングされたモデルのいずれよりもパフォーマンスが向上します。
説明
積み上げ汎化(または積み上げ)は、複数のモデルを組み合わせて、メタ学習者の概念を導入する方法です。バギングやブースティングとは異なり、スタックは異なるタイプのモデルを結合するために使用できます(通常は使用されます)。手順は次のとおりです。トレーニングセットを2つのばらばらのセットに分割します。最初の部分で複数の基本学習者を訓練します。 2番目のパートで基本学習者をテストします。入力としてステップ3の予測を使用し、出力として正しい応答を使用して、より高いレベルの学習者をトレーニングします。手順1〜3は相互検証と同じですが、勝者がすべてを取るアプローチの代わりに、基本学習器を、場合によっては非線形に結合します。
科学的手法の根底にある重要な事前の信念は、モデルの作成に使用されなかったデータでモデルを比較することにより、モデルのセットを判断できることです。この事前の信念は、単一データセットに基づいてモデルのセットから選択するために、交差検証手法で使用されます。これは、データセットをトレーニングデータセットとテストデータセットに分割することによって行われます。トレーニングデータでモデルをトレーニングします。そして、これらの訓練されたモデルのいずれかを選択して、テストデータで最高のパフォーマンスを発揮します。
スタッキングは、この事前の信念をさらに活用します。これは、テストデータのパフォーマンスを使用してモデルを選択するのではなく、モデルを結合することにより行われます。これにより、通常、トレーニングされたモデルのいずれよりもパフォーマンスが向上します。教師あり学習タスク(回帰など)と教師なし学習(密度推定など)の両方で正常に使用されています。
スタッキング演算子はネストされた演算子です。これには2つのサブプロセスがあります:Base LearnersおよびStacking Model Learnerサブプロセス。この演算子を適用するには、サブプロセスの基本的な理解が必要です。サブプロセスの基本的な理解については、サブプロセス演算子のドキュメントをご覧ください。
アンサンブル理論スタッキングはアンサンブル手法であるため、ここではアンサンブル理論の概要について説明しました。 Ensembleメソッドは、複数のモデルを使用して、構成モデルのいずれかから得られるよりも優れた予測パフォーマンスを取得します。言い換えると、アンサンブルは、強い学習者を生成するために、多くの弱い学習者を組み合わせる手法です。通常、アンサンブルの予測を評価するには、単一のモデルの予測を評価するよりも多くの計算が必要です。そのため、アンサンブルは、多くの余分な計算を実行することにより、貧弱な学習アルゴリズムを補う方法と考えることができます。
アンサンブルはそれ自体が教師あり学習アルゴリズムです。これは、アンサンブルをトレーニングしてから予測を行うために使用できるためです。したがって、訓練された集団は単一の仮説を表します。ただし、この仮説は、それが構築されたモデルの仮説空間に必ずしも含まれるわけではありません。したがって、アンサンブルは、表現できる機能の柔軟性が高いことを示すことができます。この柔軟性により、理論的には、単一のモデルよりもトレーニングデータをオーバーフィットできますが、実際には、いくつかのアンサンブル手法(特にバギング)は、トレーニングデータのオーバーフィットに関連する問題を軽減する傾向があります。
経験的に、アンサンブルは、モデル間に大きな多様性がある場合により良い結果をもたらす傾向があります。したがって、多くのアンサンブルメソッドは、組み合わせたモデル間の多様性を促進しようとします。おそらく直感的ではありませんが、よりランダムなアルゴリズム(ランダムな決定木など)を使用して、非常に意図的なアルゴリズム(エントロピーを削減する決定木など)よりも強いアンサンブルを生成できます。ただし、さまざまな強力な学習アルゴリズムを使用することは、多様性を促進するためにモデルをダムダウンする手法を使用するよりも効果的であることが示されています。
入力
- トレーニングセット (IOObject)この入力ポートには、ExampleSetが必要です。これは、添付のプロセス例のRetrieveオペレーターの出力です。他の演算子の出力も入力として使用できます。
出力
- モデル (スタッキングモデル)スタッキングモデルは、この出力ポートから配信され、不可視のデータセットに適用できます。
パラメーター
- keep_all_attributesスタックモデルのトレーニングに入力サンプルセットのすべての属性を使用します。 範囲:ブール
- keep_confidences基本学習器によって生成された信頼度を使用して、スタックモデルをトレーニングします。 範囲:ブール
チュートリアルプロセス
スタッキングの概要
「ソナー」データセットは、検索演算子を使用してロードされます。スプリット検証演算子は、モデルのトレーニングとテストのために適用されます。 Stackingオペレーターは、Split Validationオペレーターのトレーニングサブプロセスで適用されます。 StackingオペレーターのBase Learnerサブプロセスでは、3人の学習者が適用されます。これらの学習者は、ディシジョンツリー、K-NN、線形回帰演算子です。 Naive Bayesオペレーターは、StackingオペレーターのStacking Model Learnerサブプロセスで適用されます。 Naive Bayes学習器は、前の3つの学習器の予測を使用して結合予測を行うスタッキング学習器として使用されます。モデルの適用演算子は、スタッキング演算子によって生成されたモデルを適用するために、スプリット検証演算子のテストサブプロセスで使用されます。結果のラベルが付いたExampleSetは、モデルのパフォーマンスを測定するためにパフォーマンスオペレーターによって使用されます。スタッキングモデルとそのパフォーマンスベクトルは出力に接続され、結果ワークスペースで確認できます。