質問: kaggleを取り組んでいてアンサンブル学習について疑問点がでてきたので質問させていただきます。 アンサンブル学習を採用している方のほとんどが、説明変数の重要度をモデルごとに計算していると思います。 質問) ・説明変数ごとに似通った重要度を示すモデルを用いるよりも、重要視している説明変数がまったく異なるようなモデルをアンサンブルしたほうが、一般的には精度は改善されるのでしょうか?
回答: > > ・説明変数ごとに似通った重要度を示すモデルを用いるよりも、重要視している説明変数がまったく異なるようなモデルをアンサンブルしたほうが、一般的には精度は改善されるのでしょうか? > > > 「一般的に」が言えないようなタスクなので機械学習を適用する訳で、そういう観点からすると「一般的に言えることはありません。ケースバイケース」という回答になります。 それだけだと寂しいので、以下余談。 変数重要度が出せたとして、まず、 * ゴミモデルならまったくあてにならない ということが言えます。すごく精度の悪いモデルの出した変数重要度は、まあ役には立たないでしょう。 一方、ある程度まともなモデルなら、 * 多少の偏りはあれど、概ねデータそのものの性質を反映する ということが言えると思います。要するに目的変数と相関の高い説明変数の重要度が大きくなるだけです。モデルによってクセとかは当然あると思うんですが、それでも複数の(ある程度データの識別にちゃんと役立つモデルを)同じデータにfitさせればそんなに大きくは違わない結果が出ると思います。 アンサンブルにはいろいろありますが、けっきょくのところ結果を混ぜるのはモデルのクセを緩和して全体として正しい結果にしたいというモチベーションからだと思います。 なので、 * 重要度はある程度似通っていていい。概念的にはアンサンブルすることで真値に近づく(ことを期待する) * てんでばらばらな重要度を示す複数のモデルがあるなら、いずれかが間違っている可能性大 というようなことは言えると思います。