본문 바로가기

파이썬/빅분기

변수 선택 방법(Feature selection) - 필터 기법, 래퍼 기법, 임베디드 기법

모델을 만들 때 정확도 향상과 속도 및 성능 향상을 위해 변수 선택을 한다. 보통 데이터 셋은 여러개의 독립변수를 갖고 있는데, 독립 변수 전체를 다 모델링에 사용하지 않고 종속변수와 유의미한 연관성을 가진 독립변수만을 채택해서 모델링을 하는 것이다. 이렇게 하면 모델을 단순화할 수 있고 모델링 시간도 단축시킬 수 있으며 정확도도 높일 수 있다.

 

 

1. 필터 기법

데이터의 통계적 특성을 확인하고 변수를 선택하는 기법으로 말 그대로 무의미한 변수들을 필터링하는 작업이다. 통계적 측정 방법을 이용해 피쳐들 간 상관관계를 확인하고 적합한 피쳐만 뽑아서 모델링에 사용한다.

 

 

2. 래퍼 기법

예측 정확도 측면에서 가장 높은 성능을 보이는 변수들을 뽑아내는 기법이다. 변수의 일부만을 모델링에 사용하고 성능을 측정하는 작업을 n번 반복하면서 그 중 가장 좋은 성능을 보인 변수들을 채택하는 것이다.

 

 

당연히 시간과 비용이 매우 높게 발생하지만 최종적으로 best feature subset을 찾아주기 때문에 모델 성능 측면에서는 가장 바람직한 방법이라고 할 수 있다. 래퍼 기법에서 변수 선택을 위한 알고리즘 유형은 아래 3가지가 있다.

 

 

(1)전진 선택법

변수가 없는 상태에서 시작해 반복할 때마다 모든 독립변수 중 종속변수에 가장 많은 영향을 줄 것으로 판단되는 변수부터 하나씩 추가하여 모형을 만드는 방법. 변수를 추가해도 더 이상 모형 적합도(AIC)가 향상되지 않으면 중단

(*AIC는 작을 수록 좋다)

 

(2)후진 제거법

모든 변수가 포함된 상태에서 종속변수에 가장 영향도가 적은 변수부터 하나씩 제거하여 모형을 만드는 방법. 전진 선택법과 마찬가지로 더이상 성능이 좋아지지 않으면 중단

 

(3)단계적 방법

전진 선택법과 후진 제거법을 함께 사용하는 방법으로 영향도가 가장 적은 변수를 삭제하고, 모델에서 빠져있는 변수 중에 유의미한 변수를 추가하는 방식으로 변수를 제거 혹은 삭제하는 기법이다.

 

 

3. 임베디드 기법

임베디드 기법은 필터 기법과 래퍼 기법의 장점을 결합한 방법으로 알고리즘 자체에 feature selection을 넣는 방법이다. 대표적인 것이 바로 L1규제인 라쏘, L2규제인 릿지이다.

 

L2규제 릿지

L1규제 라쏘와 엘라스틱넷

 

 

추가로 필터 기법과 래퍼 기법의 차이점은 아래와 같다.

 

1. 필터기법에 비해 래퍼기법은 속도와 비용이 많이 든다.

2. 래퍼기법은 오버피팅이 되기 쉽다

3. 필터기법은 모델 학습을 하지 않고 통계적 상관관계에 의해 상관성을 예측하지만 래퍼기법은 모델 학습을 통해 상관성을 예측한다. (래퍼는 교차검증 사용)

4. 필터기법으로 선택한 변수는 항상 최적의 subset이 아니지만 래퍼기법으로 선택한 변수는 항상 최적의 이상적인 변수 subset이다.