アンサンブル学習は、かなり多くの異なる方法を指します。ブースティングとバギングは、おそらく2つの最も一般的なものです。stackingと呼ばれるアンサンブル学習メソッドを実装しようとしているようです。スタッキングは、いくつかの学習アルゴリズムからの予測を組み合わせることにより、精度を向上させることを目的としています。スタッキングを行う方法はかなりありますが、厳密な理論はあまりありません。それは直感的で人気があります。
友人のアプローチを検討してください。最初のレイヤーモデルを5つの折り目のうち4つに当てはめてから、同じ4つ折りを使用して2番目のレイヤー(投票)モデルを当てはめます。問題は、2番目の層がトレーニング誤差が最小のモデルを優先することです。同じデータを使用してモデルに適合し、それらのモデルを集約する手順を考案します。2番目のレイヤーは、サンプル外予測を使用してモデルを結合する必要があります。あなたの方法は優れていますが、それでもなおより良い方法があります。
テストのために、引き続き1つを省略します。4つのフォールドを取得し、4フォールドCVを使用して、4つのフォールドすべてで最初のレイヤーモデルのそれぞれのサンプル外予測を取得します。つまり、4つの折り畳みのうちの1つを省略し、他の3つにモデルを適合させてから、保持されたデータを予測します。4つすべてのフォールドについて繰り返して、4つすべてのフォールドでサンプル外の予測を取得します。次に、これらのサンプル外予測に2番目のレイヤーモデルを適合させます。次に、最初のレイヤーモデルを4つすべての折り目に再度フィットさせます。これで、まだ触れていない5番目のフォールドに移動できます。保持されたデータの誤差を推定するために、2番目のレイヤーモデルとともに4つすべての折り目に適合する最初のレイヤーモデルを使用します。1番目と2番目のレイヤーモデルフィッティングから他の折り畳みを保持して、このプロセスを再度繰り返すことができます。
パフォーマンスに満足している場合は、5つすべてのフォールドで最初のレイヤーモデルのサンプル外予測を生成し、2つ目のレイヤーモデルをこれらに合わせます。次に、最初のレイヤーモデルを最後にもう一度すべてのデータに合わせ、これらを新しいデータの2番目のレイヤーモデルで使用します。
最後に、いくつかの一般的なアドバイス。最初のレイヤーモデルが互いにかなり異なる場合、より多くのメリットが得られます。ここでは、SVMとディシジョンツリーを使用して正しい道を進んでいますが、これらは互いにかなり異なっています。2番目のレイヤーモデルからの平均化効果があるため、特に多くのモデルがある場合は、最初のレイヤーモデルを徐々にオーバーフィットしてみてください。通常、2番目のレイヤーは単純なもので、重みの非負性や単調性などの制約が一般的です。最後に、積み重ねは相互検証に依存していることを忘れないでください。これは真のリスクの推定にすぎません。フォールド全体でエラー率が非常に異なり、モデルの重みが非常に異なる場合、cvベースのリスク推定値の分散が高いことを示しています。その場合は、単純なブレンドを検討する必要があります最初のレイヤーモデルの。または、各最初のレイヤーモデルに配置された最大/最小ウェイトの制約を積み重ねることで妥協することができます。