回帰アンサンブルを適切に作成する方法を見つけようとしています。さまざまなオプションがあることを知っています。私は次のアプローチを使用します。まず、線形回帰、GBM などのモデルを定義します。次に、これらの各モデルに対して GridSearchCV を実行して、最適なパラメーターを把握します。この後、各モデルの個別の予測を考慮しながら、最終的な予測を行いたいと考えています。問題は、個々の予測を単一の Y ベクトルに適切にマージする方法です。各予測に重み係数を割り当てることは、回帰問題には適していないようです。もしそうなら、そのような重み係数を取得する方法は? おそらく、個々の予測をトレーニング セットとして使用してメタモデルをトレーニングするのが良い方法でしょうか?
1133 次
1 に答える
3
免責事項: 私はアンサンブルのトレーニングに関する個人的な経験はありませんが、このトピックにも興味があります。
- アンサンブルのトレーニングで見つけたほとんどのリソースは、分類の問題を扱っています。ウィキペディアの記事以外に、私が見つけた良い記事は次のとおりです。相互検証のパフォーマンスなどに基づいて各モデルに重み係数を割り当てることができますが、それでも予測は理にかなっています。合計が 1.0 になるように係数を正規化するだけです。
- 別のオプションは、ブースティングを行うことです。モデルを次々とトレーニングし、連続する各モデルは前のモデルのエラーでトレーニングされます。つまり、最初のモデルの予測が高すぎる場合、次のモデルはそのサンプルに対して負の値を予測しようとします (モデルの予測の合計が実際のトレーニング ターゲットと等しくなるように)。ウィキペディアのこの短い段落は、それを理解するのに役立つかもしれません: https://en.wikipedia.org/wiki/Ensemble_learning#Boosting
- 私が読んだ限りでは、バギング(ブートストラップ集約) も回帰のために機能するようです。トレーニング データのランダムなサブセットのみを使用して、各モデルをトレーニングします。次に、予測のために平均を取ります (すべてのモデルの重みは同じです)。トレーニング データのサンプリング方法の詳細については、こちらを参照してください。
- スタッキングは、あなたがすでに提案したものです。モデルの出力をデータとしてメタ分類子を使用します。これを実装する方法の説明と詳細は、たとえばここにあります: https://docs.rapidminer.com/latest/studio/operators/modeling/predictive/ensembles/stacking.html
また、 Cross Validatedに関する詳細情報を含む関連する質問: https://stats.stackexchange.com/questions/18891/bagging-boosting-and-stacking-in-machine-learning
于 2015-12-12T11:05:16.380 に答える