정규화 알고리즘을 사용하는 동안 여전히 기능 선택이 필요합니까?


20

통계 학습 알고리즘을 실행하기 전에 기능 선택 방법 (랜덤 포리스트 기능 중요도 값 또는 일 변량 기능 선택 방법 등)을 사용해야하는 것과 관련하여 한 가지 질문이 있습니다.

우리는 과적 합을 피하기 위해 가중치 벡터에 정규화 페널티를 도입 할 수 있습니다.

따라서 선형 회귀를 원한다면 L2 또는 L1 또는 Elastic net 정규화 매개 변수를 도입 할 수 있습니다. 스파 스 솔루션을 얻기 위해 L1 페널티는 기능 선택에 도움이됩니다.

그런 다음 Lasso?와 같은 L1 정규화 회귀를 실행하기 전에 기능 선택을 수행해야합니다. 기술적으로 Lasso는 L1 페널티로 기능을 줄이는 데 도움을줍니다. 그러면 왜 algo를 실행하기 전에 기능 선택이 필요한가요?

Anova를 수행 한 다음 SVM을 사용하는 것이 SVM 만 사용하는 것보다 더 나은 성능을 제공한다는 연구 기사를 읽었습니다. 이제 질문은 다음과 같습니다. SVM은 본질적으로 L2 규범을 사용하여 정규화를 수행합니다. 마진을 최대화하기 위해 가중치 벡터 표준을 최소화하고 있습니다. 객관적인 기능으로 정규화하고 있습니다. 그런 다음 SVM과 같은 기술 알고리즘은 기능 선택 방법에 대해 신경 쓰지 않아야합니다. 그러나 보고서는 정상적인 SVM이 더 강력 해지기 전에 일 변량 기능 선택을 수행한다고 말합니다.

생각이있는 사람?


내가 제기 할 한 가지 질문은 SVM 정규화가 커널 메소드와 어떻게 작동합니까? L2 규범은 정규화되는 입력에 의존합니다. 그러나 커널 (예 : 다항식)을 사용하면 유효 입력 (예 : 다항식)이 더 이상 정규화되지 않습니다.
seanv507

답변:


17

기능 선택으로 인해 정규화 된 모델의 성능이 향상되는 경우도 있지만 일반적으로 일반화 성능이 저하됩니다. 그 이유는 모델에 대해 더 많은 선택 (매개 변수 값, 기능 선택, 하이퍼 매개 변수 설정, 커널 선택 등)을할수록 더 많은 데이터가 필요하기 때문입니다. 이러한 선택은 확실하게합니다. 일반적으로 우리는 유한 한 데이터 세트에 대해 평가 된 일부 기준을 최소화하여 이러한 선택을합니다. 즉, 기준에 반드시 0이 아닌 분산이 있음을 의미합니다. 결과적으로 기준을 너무 공격적으로 최소화하면 기준을 과도하게 맞출 수 있습니다. 즉 평가 대상이되는 특정 샘플에 의존하는 기능 때문에 기준을 최소화하기 위해 기준을 최소화 할 수 있습니다. 진정한 성능 향상.

이제 SVM은 차원에 의존하지 않는 일반화 성능에 대한 대략적인 구현이므로 원칙적으로 정규화 매개 변수를 올바르게 선택하면 기능을 선택하지 않고도 우수한 성능을 기대할 수 있습니다. 대부분의 기능 선택 방법에는 그러한 성능 "보증"이 없습니다.

L1 방법의 경우 L1 기준이 일반적으로 피처 트리밍에 효과적이므로 피처 선택에 신경 쓰지 않을 것입니다. 효과적인 이유는 피처가 모델에 들어오고 나가는 순서를 유도하여 피처 선택시 사용 가능한 선택의 수가 줄어들어 과적 합이 덜 발생하기 때문입니다.

기능을 선택하는 가장 좋은 이유는 어떤 기능이 관련성 / 중요한지 알아내는 것입니다. 기능 선택의 최악의 이유는 일반화 된 모델의 경우 성능을 개선하여 일반적으로 상황을 악화시키는 것입니다. 그러나 일부 데이터 집합의 경우 큰 차이가 생길 수 있으므로 가장 좋은 방법은 데이터를 사용해보고 신뢰할 수없는 강력한 성능 평가 체계 (예 : 중첩 된 교차 유효성 검사)를 사용하여 해당 데이터 집합 중 하나인지 확인하는 것입니다.


중첩 교차 검증이란 무엇입니까? k 배 교차 검증을 N 번 적용합니까?
yasin.yazici

5

jβ^j=.0001β^j=0

그러나 변수를 완전히 제거해야하는 이유는 여전히 있습니다.

  1. 때때로 목표는 예측 정확도가 아니라 세계 현상에 대한 설명입니다. 때로는 변수가 어떤 변수인지 알고 특정 종속 변수에 영향을 미치지 않는 경우가 있습니다. 이러한 유형의 상황에서, 비유적인 모델은 이해하고 해석하는 선호되는 방법입니다.
  2. β^j
  3. 계산상의 이유-변수가 적은 모델은 일반적으로 더 빠르게 실행되며 해당 변수에 대한 데이터를 저장할 필요가 없습니다.

2
안녕하세요 TrynnaDoStat, 나는 당신의 포인트 1과 3에 완전히 동의하지만 인수 2는 실제로 포인트에 도달하지 않습니다. 동일한 데이터 세트로 기능을 선택하면 잘못된 기능 세트를 선택해야 할 위험이 있습니다. 임의의 변수 하나가 데이터의 목표 변수와 상관 관계가있는 것 같습니다.
gstar2002

β^j

0

과적 합이 처음에 기능 선택이 필요한 이유라고 생각하지 않습니다. 실제로, 과적 합은 모델에 충분한 데이터를 제공하지 않으면 발생하는 기능이며 기능 선택 알고리즘을 통과하는 데이터의 양을 더 입니다.

대신 기능 선택은 자체적으로 기능의 중요도를 결정할 힘이없는 모델 또는 자체적으로 중요도 가중치를 수행해야하는 경우 훨씬 덜 효율적인 알고리즘의 전처리 단계로 필요하다고 말하고 싶습니다. .

유클리드 거리에 기초한 간단한 k- 최근 접 이웃 알고리즘을 예로 들어 보자. 항상 최종 분류와 동일한 가중치 또는 중요성을 갖는 모든 기능을 검토합니다. 따라서 100 개의 기능을 제공하지만 분류 문제와 관련이있는 3 가지 기능 만 제공하는 경우 이러한 추가 기능의 모든 노이즈가 3 가지 중요한 기능의 정보를 완전히 익사 시키므로 유용한 예측을 얻을 수 없습니다. 대신 중요한 기능을 미리 결정하고 해당 기능 만 분류 자에게 전달하면 훨씬 더 잘 작동합니다 (물론 더 빠르지는 않습니다).

반면에 임의의 포리스트 분류기를 살펴보십시오. 교육하는 동안 모든 기능의 하위 집합에서 선택하여 최적의 분할을 찾아서 가장 유용한 기능을 자동으로 결정합니다. 따라서 97 가지의 쓸모없는 기능을 통해 세 가지 좋은 기능을 찾는 것이 훨씬 나을 것입니다. 물론 사전에 선택을하면 더 빠르게 실행되지만, 분류 기능은 관련이 없어도 추가 기능을 많이 제공함으로써 일반적으로 큰 어려움을 겪지 않습니다.

마지막으로 신경망을 살펴보십시오. 다시 말하지만, 이것은 관련없는 기능을 무시할 수있는 모델이며 역 전파에 의한 훈련은 일반적으로 흥미로운 기능을 사용하는 것으로 수렴됩니다. 그러나 입력이 "미백"되면 (즉, 단위 분산으로 스케일링되고 교차 상관이 제거 된 경우) 표준 학습 알고리즘이 훨씬 빠르게 수렴되는 것으로 알려져 있습니다 (LeCun et al, 1998) . 따라서 기능 선택을 엄격하게 수행 할 필요는 없지만 입력 데이터의 전처리를 수행하기 위해 순수한 성능 조건을 지불 할 수 있습니다.

요약하면, 기능 선택은 과적 합과 관련이 없으며 학습 방법의 분류 능력과 계산 효율성을 향상시키는 것과 관련이 있다고 말합니다. 그것이 얼마나 필요한지는 문제의 방법에 달려 있습니다.


3
(1) 나는 당신의 첫 번째 제안에 동의하지 않습니다. 기능 선택은 데이터 양을 줄이지 않지만 기능 수를 줄입니다. 인스턴스 (샘플)의 수는 동일하게 유지되며 분류 기가 데이터에 적합하기 위해 더 적은 수의 매개 변수 (파라 메트릭 모델 인 경우)가 필요하기 때문에 과적 합에 도움이 될 수 있습니다. 매개 변수가 적을수록 표현력이 떨어 지므로 과적 합 가능성이 줄어 듭니다. (2) KNN 이전에 언급 한 기능 선택 알고리즘 유형은 무엇입니까? 어떤 기능이 더 효과적인지 어떻게 알 수 있습니까?
yasin.yazici

@ yasin.yazici : 필기 숫자 분류를하고 있고 가장 왼쪽 위의 픽셀을 제외한 모든 것을 버린다고 가정 해 봅시다. 보유한 데이터의 양을 줄이지 않았습니까?
cfh

@chf 아니요, 기능의 수만 줄입니다. 데이터 세트가 MNIST라고 말하면 각 샘플과 6,000 개의 샘플에 대해 784 개의 기능이 있습니다. 기능의 일부를 버려도 여전히 60000 개의 샘플이 있습니다.
yasin.yazici

@ yasin.yazici : 내 요점은 샘플 수는 데이터 양과 동일하지 않다는 것입니다. 데이터는 "표본 x 특징"의 전체 행렬입니다.
cfh

기능 선택은 초과 적합 할 수 있습니다. 정규 학습자를 사용하고 기능의 중요성에 신경 쓰지 않으면 많은 데이터와 강력한 유효성 검사 체계가 없으면 기능 선택에별로 사용되지 않습니다.
Firebug

0

매개 변수를 강력하게 최적화하기에 충분한 수의 데이터 포인트가 없으면 기능 선택을 수행하여 일부 변수를 제거 할 수 있다고 생각합니다. 그러나 모델링하려는 신호를 잃을 수 있으므로 너무 많이 사용하지 않는 것이 좋습니다.

또한 제거하려는 비즈니스 이해를 바탕으로 모델에 원하지 않는 특정 기능이있을 수 있습니다.


0

올가미의 경우 데이터를 전처리하여 불필요한 특징을 제거하는 것이 실제로 일반적입니다. 이를 수행하는 방법에 대한 최근 논문은 Xiang et al.의 올가미 문제 선별 검사 를 참조하십시오 . 내가 본 논문에서 언급 한 일반적인 동기는 솔루션 계산의 계산 부담을 줄이는 것입니다.

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