相関が強すぎるフィーチャがある場合、モデルを悪化させる可能性があるため、削除する必要があることをどこかで読みました。相関する特徴は、それらが同じ情報をもたらすことを意味することは明らかなので、それらの1つを削除することは論理的です。しかし、なぜこれがモデルを悪化させるのか理解できません。
相関が強すぎるフィーチャがある場合、モデルを悪化させる可能性があるため、削除する必要があることをどこかで読みました。相関する特徴は、それらが同じ情報をもたらすことを意味することは明らかなので、それらの1つを削除することは論理的です。しかし、なぜこれがモデルを悪化させるのか理解できません。
回答:
相関機能は一般にモデルを改善しませんが(変数の数や相関の程度などの問題の詳細に依存しますが)、特定のモデルにさまざまな方法でさまざまな程度で影響します:
線形モデル(線形回帰またはロジスティック回帰など)の場合、多重共線形性は、大きく変動し、場合によっては数値的に不安定な解を生成する可能性があります。
ランダムフォレストは、さまざまな機能間の相互作用を検出するのに適していますが、高度に相関した機能はこれらの相互作用を隠す可能性があります。
より一般的には、これはオッカムのカミソリの特殊なケースと見なすことができます。単純なモデルの方が望ましく、ある意味では、機能の少ないモデルの方が単純です。の概念最小記述長により、これがより正確になります。
(あなたが教師あり学習について話していると仮定して)
相関する機能によってモデルが常に悪化するわけではありませんが、必ずしも改善されるとは限りません。
相関フィーチャを削除する主な理由は3つあります。
次元の呪いにより、通常、機能が少ないほど速度が大幅に向上します。
速度が問題でない場合は、これらの機能をすぐに削除しないでください(次のポイントを参照)
キーワードが有害です。相関する特徴があるが、それらがターゲットにも相関している場合、それらを保持する必要があります。本質的に同じヒントが2つある場合は、機能をヒントとして表示して推測することができますが、それらは優れたヒントであるため、それらを保持することをお勧めします。
Naive Bayesなどの一部のアルゴリズムは、実際には「正の」相関機能から直接恩恵を受けます。また、ランダムフォレストのような他のユーザーは、間接的にそれらの恩恵を受ける可能性があります。
3つのフィーチャA、B、Cがあるとします。AとBはターゲットと相互に高度に相関しており、Cはまったく相関していません。3つの機能からサンプリングすると、2/3の確率で「良い」機能を取得できますが、たとえばBを削除すると、この可能性は1/2に低下します
もちろん、相関する特徴がそもそも非常に有益ではない場合、アルゴリズムはそれほど苦しむことはありません。
話の教訓として、速度のためにこれらの機能を削除する必要があるかもしれませんが、その過程でアルゴリズムを悪化させる可能性があることに注意してください。また、決定木のようないくつかのアルゴリズムには、機能選択が組み込まれています。
これに対処する良い方法は、機能の選択にラッパーメソッドを使用することです。冗長機能は、パフォーマンスに直接貢献しない場合にのみ削除されます。単純なベイのように有用な場合、それらは保持されます。(ラッパーメソッドは高価であり、オーバーフィットにつながる可能性があることに注意してください)
モデルを解釈可能にする必要がある場合は、モデルを単純にする必要があります。オッカムのカミソリも忘れないでください。機能が少なくてもモデルが「それほど」悪くない場合は、おそらく使用する機能を少なくする必要があります。
意思決定は、そのために必要な最小限の変数で行われる必要があります。これは、上記のように、上記の最小の説明長でのオッカムのカミソリの形式化です。私はそれが好きです。
HDDTのようなものでこの現象を特徴付けて、利用可能なデータに基づいて偽の決定を行わない最も効率的なツリーを意味し、それらが相関していることを理解せずに複数のデータポイントで行われた可能性がある決定のインスタンスをすべて回避する傾向があります。
データベースにデータを保存するという観点では、相関機能の保存は冗長な情報の保存に似ており、ストレージの浪費を引き起こし、タプルの更新または編集後に不整合なデータを引き起こす可能性があります。
我々は、モデルが不必要な機能を検討する可能性があり、我々は、高次元の問題の呪いを有することができるモデルにはあまり相関機能を追加した場合、私はこれが構築されたモデルの悪化の理由ですね。
機械学習のコンテキストでは、通常、 PCA
、入力パターンの次元を減らすためにします。このアプローチでは、何らかの形で(を使用してSVD
)相関フィーチャを削除することを考慮しており、教師なしアプローチです。これは、次の目的を達成するために行われます。
これは大丈夫とは思えないかもしれませんが、過剰適合を避けるために相関機能を削除する人々を見てきましたが、それは良い習慣ではないと思います。詳細については、こちらをご覧ください。
もう1つの理由は、深層学習モデルでMLPs
は、相関する特徴を追加する場合のように、不必要な情報を追加するだけで、より多くの計算とパラメーターがモデルに追加されるためです。
この質問に対する答えは、モデルの目的に大きく依存します。推論では、高度に相関した特徴はよく知られた問題です。たとえば、2つの特徴が相互に、またyと非常に相関している場合、両方とも推論モデルで重要ではないものとして出力され、重要な説明信号が欠落する可能性があります。したがって、推論では、一般的にそれらを間引くことをお勧めします。
教師あり学習が予測のためのものである場合、答え-従来の知恵に反する-は通常反対です。相関の高い機能を削除する唯一の理由は、ストレージと速度の問題です。それ以外に、機能に関して重要なのは、それらが予測に寄与するかどうか、およびそれらのデータ品質が十分であるかどうかです。
ノイズが支配的な特徴は、yと相関する特徴よりも他の特徴との相関が低い傾向があります。したがって、上記のValentinの例で述べたように、後者を間引くと前者の割合が増加します。
特に、ランダムフォレストやKNNなどの方法はすべての機能を同等に扱うため、相関する機能を間引くと信号対雑音比が直接低下します。
単一ツリー、「純粋な」なげなわ、ニューラルネットワークなどの機能を自動選択する方法は、影響が少ない可能性があります。しかし、その場合でも、計算時間が長くなること以外に、相関関係のある機能をミックス内に保持することで予測的に失うものはほとんどありません。