상관 관계가있는 기능이있는 경우 모델을 악화시킬 수 있으므로 기능을 제거해야합니다. 상관 된 기능은 동일한 정보를 가져 오는 것을 의미하므로 그 중 하나를 제거하는 것이 논리적입니다. 그러나 이것이 왜 모델을 악화시킬 수 있는지 이해할 수 없습니다.
상관 관계가있는 기능이있는 경우 모델을 악화시킬 수 있으므로 기능을 제거해야합니다. 상관 된 기능은 동일한 정보를 가져 오는 것을 의미하므로 그 중 하나를 제거하는 것이 논리적입니다. 그러나 이것이 왜 모델을 악화시킬 수 있는지 이해할 수 없습니다.
답변:
일반적으로 상관 기능은 모델 수를 개선하지는 않지만 (변수 수 및 상관 정도와 같은 문제의 세부 사항에 따라 다르지만) 다양한 방법으로 다양한 범위로 특정 모델에 영향을줍니다.
선형 모형 (예 : 선형 회귀 또는 로지스틱 회귀)의 경우, 다중 공선 성은 크게 변화하고 수치 적으로 불안정한 솔루션을 생성 할 수 있습니다. .
임의 포리스트는 서로 다른 기능 간의 상호 작용을 감지하는 데 능숙 할 수 있지만 상관 관계가 높은 기능은 이러한 상호 작용을 숨길 수 있습니다.
더 일반적으로, 이것은 Occam 면도기의 특별한 경우로 볼 수 있습니다 . 더 간단한 모델이 바람직하며 어떤 의미에서는 더 적은 기능을 가진 모델이 더 간단합니다. 최소 설명 길이 의 개념 은이를보다 정확하게 만듭니다.
(당신이지도 학습에 대해 이야기하고 있다고 가정)
상관 된 기능이 항상 모델을 악화 시키지는 않지만 항상 향상 시키지는 않습니다.
상관 된 기능을 제거해야하는 세 가지 주요 이유가 있습니다.
치수의 저주로 인해 특징이 적을수록 일반적으로 속도 측면에서 높은 개선을 의미합니다.
속도가 문제가되지 않는 경우 이러한 기능을 즉시 제거하지 마십시오 (다음 사항 참조).
키워드가 해 롭습니다. 상관 된 기능이 있지만 대상과의 상관 관계가있는 경우이를 유지하려고합니다. 본질적으로 동일한 두 개의 힌트가 있지만 좋은 힌트 인 경우 기능을 힌트로 사용하여 힌트를 볼 수 있지만 유지하는 것이 좋습니다.
Naive Bayes와 같은 일부 알고리즘은 실제로 "긍정적 인"상관 기능의 이점을 직접 활용할 수 있습니다. 그리고 임의의 숲과 같은 다른 사람들은 간접적으로 그들로부터 이익을 얻을 수 있습니다.
A, B, C의 3 가지 특징이 있다고 상상해보십시오. A와 B는 대상과 서로 밀접하게 관련되어 있으며 C는 전혀 관련이 없습니다. 3 가지 기능 중 하나를 샘플링하면 2/3 확률로 "좋은"기능을 얻을 수 있지만 B를 제거하면이 확률은 1/2로 떨어집니다.
물론 상관 관계가있는 기능이 처음에는 유익하지 않은 경우 알고리즘에 큰 영향을 미치지 않을 수 있습니다.
이야기의 교훈은 속도로 인해 이러한 기능을 제거해야 할 수도 있지만 프로세스에서 알고리즘을 악화시킬 수 있음을 기억하십시오. 또한 의사 결정 트리와 같은 일부 알고리즘에는 기능 선택이 포함되어 있습니다.
이를 처리하는 좋은 방법은 기능 선택에 랩퍼 방법을 사용하는 것입니다. 성능에 직접 기여하지 않는 경우에만 중복 기능을 제거합니다. 순진한 베이와 같이 유용하면 유지됩니다. (래퍼 방법이 비싸고 과적 합으로 이어질 수 있음을 기억하십시오)
모델을 해석 할 수 있어야하는 경우 더 단순하게 만들어야 할 수 있습니다. Occam의 면도칼도 기억하십시오. 기능이 적을수록 모델이 "많이"나 빠지지 않으면 기능을 적게 사용해야합니다.
필요한 최소 변수에 대해 결정을 내려야합니다. 이것은 위에서 언급 한 바와 같이 최소 설명 길이를 가진 Occam 면도기의 공식화입니다. 나는 그 것을 좋아한다.
나는이 현상을 HDDT 와 같은 특징 으로 사용하여 사용 가능한 데이터를 기반으로 가짜 결정을 내리지 않고 가장 관련성 이 높은 트리를 의미하며, 여러 데이터 포인트에서 상관 관계가 있다는 것을 이해하지 않고 여러 가지 결정을 내릴 수있는 모든 결정 인스턴스를 피합니다. .
데이터베이스에 데이터를 저장하는 관점에서, 상관 된 기능을 저장하는 것은 중복 정보를 저장하는 것과 비슷하며 스토리지 낭비를 초래할 수 있으며 튜플을 업데이트하거나 편집 한 후에 데이터가 일치하지 않을 수 있습니다.
모델에 상관 된 지형지 물을 너무 많이 추가하면 모델이 불필요한 지형지 물을 고려하게되고 차원 문제가 발생할 수 있습니다 . 나는이 구축 된 모델을 악화 이유 것 같다.
기계 학습의 맥락에서 우리는 일반적으로 PCA
입력 패턴의 차원을 줄이기 위해 합니다. 이 방법은 어쨌든 (사용하여 SVD
) 상관 된 기능을 제거하는 것을 고려 하며 감독되지 않은 방법입니다. 이는 다음 목적을 달성하기 위해 수행됩니다.
이것이 좋지 않은 것처럼 보이지만 과적자를 피하기 위해 상관 기능 제거를 사용하는 사람들을 보았지만 좋은 습관이라고 생각하지 않습니다. 자세한 내용은 여기 를 참조 하십시오 .
또 다른 이유는 딥 러닝 모델에서 MLPs
상관 기능을 추가하는 경우 더 많은 계산 및 매개 변수를 추가하는 불필요한 정보 만 추가하기 때문입니다.
이 질문에 대한 답은 모델의 목적에 크게 좌우됩니다. 추론 적으로, 높은 상관 관계가있는 기능은 잘 알려진 문제입니다. 예를 들어, 서로 연관성이 있고 y와 상관 관계가 높은 두 가지 특징 모두 추론 모델에서 중요하지 않은 것으로 나타날 수 있으며 중요한 설명 신호가 누락 될 수 있습니다. 따라서 추론 적으로 얇게하는 것이 일반적으로 권장됩니다.
지도 학습이 예측을위한 것일 경우, 기존의 지혜와 반대되는 답변은 대개 반대입니다. 상관 관계가 높은 기능을 제거하는 유일한 이유는 저장 및 속도 문제입니다. 그 외에도 기능에서 중요한 것은 기능이 예측에 기여하는지 여부와 데이터 품질이 충분한 지 여부입니다.
노이즈가 지배적 인 특징은 y와 상관되는 특징보다 다른 특징과 관련이 적은 경향이 있습니다. 따라서 Valentin의 예에서 위에서 언급했듯이 후자를 얇게하면 전자의 비율이 증가합니다.
특히 임의 포리스트 및 KNN과 같은 방법은 모든 기능을 동일하게 처리하므로 상관 된 기능을 얇게하면 신호 대 잡음비를 직접 줄일 수 있습니다.
단일 트리, "순수한"올가미 또는 신경망과 같은 기능을 자동 선택하는 방법은 영향을 덜받을 수 있습니다. 그러나 더 긴 컴퓨팅 시간 이외에도 상관 된 기능을 혼합하여 유지함으로써 예측을 잃을 일은 거의 없습니다.