キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
DataRobot コミュニティ

多重共線性について

ima
青色LED

多重共線性について

多重共線性を含む可能性がある特徴量を含む場合、xgboostやlightBGMでは、どのようにするのが一般的でしょうか。

boosting系のアルゴリズムでは気にしなくてもよいのか、前処理段階で相関を計算して除外した方がよいのか。

ElasticNetで特徴量インパクトが0の場合は外してしまう等の方法もあるかと思いますが、みなさんどうしてますでしょうか

 

ラベル(2)
3件の返信3
Isao
データロボット同窓生

ユーザーの皆様、もしくは非ユーザーでもデータサイエンティストの皆様、ぜひどのようにしてるかご意見頂ければ幸いです!

0 件の賞賛
Isao
データロボット同窓生

私の場合ですが、モデルごとに対応を変えるというより、分析の目的によって変わると考えています。

多重共線性がある場合の最大の問題点は特徴量の評価への影響です。特徴量同士で相関が強いということは、お互いがお互いを補完してしまう関係にあります。仮に相関が強く、ほぼ同じ意味を持つような特徴量のペアがあったとすると、特徴量のインパクトや特徴量ごとの作用はそのペアの間で影響が按分されてしまい、どちらも過小評価されることになります。

その為、要因分析などの目的でモデルのインサイトが最重要な場合には、線形モデル・木型モデル問わず、多重共線性のあるペアはドメイン知識やビジネス目的に基づいて片方を除去していく必要があります。(データタブの特徴量の関連性プロットなどを用いて頂くと相互情報量の指標で特徴量のペアの相関を見ることが出来るので便利です。)

しかし、同じ意味を持つペアという事は、予測する上では「どちらを使っても良い」という事になります。現実的には完全に相関がある特徴量のペアというのは少なく、相関は強いものの多かれ少なかれ別の情報を包含しているケースの方が多いかと思います。よって、予測の精度を追うのであれば、多重共線性のペアが多少あったとしても、そのまま残した方が精度が良いのであればそれで良しと考えることが出来ます。

ただし例外として、データの行数が非常に小さい場合には過学習による精度低下が起こりやすいので、その場合は精度を追う目的であってもしっかり特徴量を選択していった方が良い結果になることが多いように思います。

ご参考になれば幸いです。

Miogawa
データサイエンティスト
データサイエンティスト

私もモデルの活用目的がワンショットの予測であれば、ツリー系のモデルで多重共線性は意識することはあまりありません。

ただ、モデルをデプロイした後に日次なり日々使うモデルかつ再学習が予測の頻度に対して少ない場合には気をつけたりします。それは多重共線性でよりインパクト高く選んだ特徴量が将来的にドリフトする可能性が高いものだとしたら、明示的に外したりしています。

@Isao sanのところでも書かれていますが、多重共線性があると特徴量が相互に補完する関係で正しい形ではその特徴量の影響を正しく取られていない可能性も残ります。ちょっとしか精度が上がらないわりに、法改正などで片方の特徴量が一気に変わるような可能性を持っているならば、私は外してしまうほうが吉かなと思っています。

精度よりも汎化性能派なので、ここにはいろいろなご意見あると思います。