지도 학습에서 상관 기능을 갖는 것이 왜 나쁜가?


35

상관 관계가있는 기능이있는 경우 모델을 악화시킬 수 있으므로 기능을 제거해야합니다. 상관 된 기능은 동일한 정보를 가져 오는 것을 의미하므로 그 중 하나를 제거하는 것이 논리적입니다. 그러나 이것이 왜 모델을 악화시킬 수 있는지 이해할 수 없습니다.


3
이 규칙은 일부 모델 및 분석에서 다른 모델보다 더 강력하게 적용됩니다. "어딘가에 읽었습니다"라는 문맥을 추가 할 수있는 가능성이 있습니까? 예를 들어 특정 모델을 훈련시키는 것과 관련이 있었습니까?
닐 슬레이터

3
상관 된 기능이 반드시 모델을 악화 시키지는 않습니다. 상관 된 기능을 제거하면 기능에 대한 의미를 유추하는 데 도움이됩니다.
Hobbes

답변:


31

일반적으로 상관 기능은 모델 수를 개선하지는 않지만 (변수 수 및 상관 정도와 같은 문제의 세부 사항에 따라 다르지만) 다양한 방법으로 다양한 범위로 특정 모델에 영향을줍니다.

  1. 선형 모형 (예 : 선형 회귀 또는 로지스틱 회귀)의 경우, 다중 공선 성은 크게 변화하고 수치 적으로 불안정한 솔루션을 생성 할 수 있습니다. .

  2. 임의 포리스트는 서로 다른 기능 간의 상호 작용을 감지하는 데 능숙 할 수 있지만 상관 관계가 높은 기능은 이러한 상호 작용을 숨길 수 있습니다.

더 일반적으로, 이것은 Occam 면도기의 특별한 경우로 볼 수 있습니다 . 더 간단한 모델이 바람직하며 어떤 의미에서는 더 적은 기능을 가진 모델이 더 간단합니다. 최소 설명 길이 의 개념 은이를보다 정확하게 만듭니다.


4
수치 적 안정성 외에, OLS 모델에 의해 제공된 예측은 예측 변수의 전반적인 효과가 다중 선형성에 의해 영향을받지 않기 때문에 다중 선형성에 의해 영향을받지 않아야한다. 다중 공선 성이 존재할 때 신뢰할 수없는 개별 예측 변수의 효과에 대한 해석입니다.
Akavall

11

(당신이지도 학습에 대해 이야기하고 있다고 가정)

상관 된 기능이 항상 모델을 악화 시키지는 않지만 항상 향상 시키지는 않습니다.

상관 된 기능을 제거해야하는 세 가지 주요 이유가 있습니다.

  • 학습 알고리즘을 더 빠르게

치수의 저주로 인해 특징이 적을수록 일반적으로 속도 측면에서 높은 개선을 의미합니다.

속도가 문제가되지 않는 경우 이러한 기능을 즉시 제거하지 마십시오 (다음 사항 참조).

  • 유해한 편견 감소

키워드가 해 롭습니다. 상관 된 기능이 있지만 대상과의 상관 관계가있는 경우이를 유지하려고합니다. 본질적으로 동일한 두 개의 힌트가 있지만 좋은 힌트 인 경우 기능을 힌트로 사용하여 힌트를 볼 수 있지만 유지하는 것이 좋습니다.

Naive Bayes와 같은 일부 알고리즘은 실제로 "긍정적 인"상관 기능의 이점을 직접 활용할 수 있습니다. 그리고 임의의 숲과 같은 다른 사람들은 간접적으로 그들로부터 이익을 얻을 수 있습니다.

A, B, C의 3 가지 특징이 있다고 상상해보십시오. A와 B는 대상과 서로 밀접하게 관련되어 있으며 C는 전혀 관련이 없습니다. 3 가지 기능 중 하나를 샘플링하면 2/3 확률로 "좋은"기능을 얻을 수 있지만 B를 제거하면이 확률은 1/2로 떨어집니다.

물론 상관 관계가있는 기능이 처음에는 유익하지 않은 경우 알고리즘에 큰 영향을 미치지 않을 수 있습니다.

이야기의 교훈은 속도로 인해 이러한 기능을 제거해야 할 수도 있지만 프로세스에서 알고리즘을 악화시킬 수 있음을 기억하십시오. 또한 의사 결정 트리와 같은 일부 알고리즘에는 기능 선택이 포함되어 있습니다.

이를 처리하는 좋은 방법은 기능 선택에 랩퍼 방법을 사용하는 것입니다. 성능에 직접 기여하지 않는 경우에만 중복 기능을 제거합니다. 순진한 베이와 같이 유용하면 유지됩니다. (래퍼 방법이 비싸고 과적 합으로 이어질 수 있음을 기억하십시오)

  • 모델의 해석 가능성

모델을 해석 할 수 있어야하는 경우 더 단순하게 만들어야 할 수 있습니다. Occam의 면도칼도 기억하십시오. 기능이 적을수록 모델이 "많이"나 빠지지 않으면 기능을 적게 사용해야합니다.


2

때로는 상관 관계가있는 기능과 제공하는 정보의 중복으로 인해 예측 시스템이 손상되지 않습니다. 의사 결정 트리의 앙상블을 고려하십시오. 각 트리는 행 샘플과 열 샘플을 고려합니다. 두 개의 열이 서로 밀접하게 관련되어 있으면 특정 트리의 열 샘플에서 이들 중 하나가 선택되지 않을 가능성이 있으며 해당 트리는 나머지 열에 따라 다릅니다. 상관 된 기능은 너무 많은 예측 품질을 포기하지 않으면 서 (컬럼 샘플링을 통해) 과적 합을 줄일 수 있음을 의미합니다.


2

필요한 최소 변수에 대해 결정을 내려야합니다. 이것은 위에서 언급 한 바와 같이 최소 설명 길이를 가진 Occam 면도기의 공식화입니다. 나는 그 것을 좋아한다.

나는이 현상을 HDDT 와 같은 특징 으로 사용하여 사용 가능한 데이터를 기반으로 가짜 결정을 내리지 않고 가장 관련성 이 높은 트리를 의미하며, 여러 데이터 포인트에서 상관 관계가 있다는 것을 이해하지 않고 여러 가지 결정을 내릴 수있는 모든 결정 인스턴스를 피합니다. .


에 관해서 datascience.stackexchange.com/users/38887/valentin-calomme 의견 : "관련 기능이 항상 모델을 악화 시키지는 않지만 항상 향상 시키지는 않습니다." 변수 사이의 높은 상관 관계가 모델을 악화시키지 않는 곳을 보지 못하거나 생각할 수 없습니다. 적어도 선택의 여지가 있다는 점에서, 나는 관련성이 적은 기능으로 네트워크를 훈련시키고 싶습니다. 그 외의 것은 기능적으로 그리고 아마도 더 나쁘다. 이것이 사실이 아닌 경우가 있습니까?
tjborromeo

1

데이터베이스에 데이터를 저장하는 관점에서, 상관 된 기능을 저장하는 것은 중복 정보를 저장하는 것과 비슷하며 스토리지 낭비를 초래할 수 있으며 튜플을 업데이트하거나 편집 한 후에 데이터가 일치하지 않을 수 있습니다.

모델에 상관 된 지형지 물을 너무 많이 추가하면 모델이 불필요한 지형지 ​​물을 고려하게되고 차원 문제가 발생할 수 있습니다 . 나는이 구축 된 모델을 악화 이유 것 같다.

기계 학습의 맥락에서 우리는 일반적으로 PCA 입력 패턴의 차원을 줄이기 위해 합니다. 이 방법은 어쨌든 (사용하여 SVD) 상관 된 기능을 제거하는 것을 고려 하며 감독되지 않은 방법입니다. 이는 다음 목적을 달성하기 위해 수행됩니다.

이것이 좋지 않은 것처럼 보이지만 과적자를 피하기 위해 상관 기능 제거를 사용하는 사람들을 보았지만 좋은 습관이라고 생각하지 않습니다. 자세한 내용은 여기 를 참조 하십시오 .

또 다른 이유는 딥 러닝 모델에서 MLPs 상관 기능을 추가하는 경우 더 많은 계산 및 매개 변수를 추가하는 불필요한 정보 만 추가하기 때문입니다.


0

이 질문에 대한 답은 모델의 목적에 크게 좌우됩니다. 추론 적으로, 높은 상관 관계가있는 기능은 잘 알려진 문제입니다. 예를 들어, 서로 연관성이 있고 y와 상관 관계가 높은 두 가지 특징 모두 추론 모델에서 중요하지 않은 것으로 나타날 수 있으며 중요한 설명 신호가 누락 될 수 있습니다. 따라서 추론 적으로 얇게하는 것이 일반적으로 권장됩니다.

지도 학습이 예측을위한 것일 경우, 기존의 지혜와 반대되는 답변은 대개 반대입니다. 상관 관계가 높은 기능을 제거하는 유일한 이유는 저장 및 속도 문제입니다. 그 외에도 기능에서 중요한 것은 기능이 예측에 기여하는지 여부와 데이터 품질이 충분한 지 여부입니다.

노이즈가 지배적 인 특징은 y와 상관되는 특징보다 다른 특징과 관련이 적은 경향이 있습니다. 따라서 Valentin의 예에서 위에서 언급했듯이 후자를 얇게하면 전자의 비율이 증가합니다.

특히 임의 포리스트 및 KNN과 같은 방법은 모든 기능을 동일하게 처리하므로 상관 된 기능을 얇게하면 신호 대 잡음비를 직접 줄일 수 있습니다.

단일 트리, "순수한"올가미 또는 신경망과 같은 기능을 자동 선택하는 방법은 영향을 덜받을 수 있습니다. 그러나 더 긴 컴퓨팅 시간 이외에도 상관 된 기능을 혼합하여 유지함으로써 예측을 잃을 일은 거의 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.