Feature Selection - Wrapper Method

매생이·2021년 12월 14일
0

일지

목록 보기
11/16
post-thumbnail

ML에서 모델의 정확도를 높이는 방법은 여러가지가 존재한다.
데이터의 부족이라면 당연히 데이터를 더 수집하는 것이 좋을 것이고, 데이터의 총 숫자가 많더라도 클래스간의 불균형이 심하다면 샘플링 기법을 통해서 정확도를 높이는 방법도 가능할 것이다.

그 외에도 데이터의 특성(차원, feature)를 선택해서 사용하는 Feature Selection 이라는 방법이 있다.


Feature Selection

모델을 학습시키는 과정에서 정확도를 높이기 위한 방법 중 Feature selection이 굉장히 효과적일 때가 있다.

모델 학습에 사용된 특성(feature) 중에서 데이터를 설명하는데에 불필요하거나 오히려 나쁜 영향을 주는 특성이 존재할 수도 있기 때문이다.

또한, 이름 그대로 Big data 에서는 Feature selection이 정확도 측면에서 뿐만이 아니라 연산 속도를 위해서도 필요하다.

Big data는 데이터의 갯수 뿐만 아니라 Feature의 갯수도 굉장히 많기 때문에 Feature selection을 통해서 정확도를 높이는 선에서 불필요한 변수를 삭제해주어서 연산속도를 굉장히 줄일 수 있다. 메모리의 절약 또한 가능하다.

Wrapper Method


Feature Selection은 3가지 방법이 있는데, 그 중 Wrapper Method에 관해서 찾아보았다.

Wrapper Method란 알고리즘에서의 Greedy 기법과 비슷하다고 볼 수 있다. Feature들간의 부분집합, 조합을 구해서 그 조합을 사용했을때의 결과가 다른 조합보다 좋은지를 비교하여 최선의 조합을 찾아서 사용하는 방법이다.

그런데 특성의 갯수가 많을수록 이 방법의 시간이 너무 커지기 때문에 3가지 방법으로 다시 나눠서 사용할 수 있다.

  • Forward Selection
  • Backward Elemination
  • Stepwise Selection

Forward Selection

Forward Selection은 0 상태, 아무 변수도 선택하지 않은 상태로 시작하여 변수를 하나 하나 그 당시의 최선의 선택으로 추가시켜 나가는 방법이다.
물론 모든 변수를 추가할 때 까지 진행되는 것이 아니고 기준으로 삼은 어떠한 수치가 변수를 더하는 것보다 멈추는 것이 더 좋은 상황이 될 경우 멈추게 된다.

Backward Elemination

Backward Elemination은 이름 그대로 Forward의 반대되는 개념이다.
모든 변수를 선택한 채로 시작하여, 그 당시의 상황에서 기준으로 삼은 어떠한 수치가 더 좋게 변화하도록 변수를 하나 골라 삭제한다.
그렇게 삭제를 반복하던중 남은 변수들을 삭제하는 것보다 머추는 것이 더 좋은 결과일 경우 멈추게 된다.

Stepwise Selection

Stepwise는 이름에서 말한 것 처럼 발걸음과 같다.
위의 두 방법을 합친 것과 같은데, 아무 변수도 선택하지 않은 상황에서 시작하거나, 모든 변수를 선택한 상황에서 시작할 수 있다.

그 후 제거 혹은 추가 두 경우중 더 나은 상황으로 나아가는 선택을 반복하여 최적의 결과를 도출하는 방법이다.

AIC


AIC=2ln(L)+2kAIC = −2ln(L) +2k

AIC란 Akaike Information Criterion 의 약자로, 정보 기준이 되는 지표인데, 주어진 데이터 셋에 상대적으로 적합한 모델을 선정하는 지표로 쓰인다.
AIC값은 정보의 손실 정도를 나타내는 값으로, 그 값이 작을 수록 더 적합한 모델이라고 평가한다.
여기서 중요한 점은 데이터에 상대적으로 적합한 모델이라고 평가할 뿐, 이 방법이 최고의 정확도를 갖는 모델은 아닐 수 있다는 점이다.

AIC의 수식을 살펴보면 우선 2ln(L)-2ln(L) 은 Likelihood의 자연로그 값에 -2를 곱한 값이다.
Likelihood는 예측 된 매개 변수가 독립 변수와 종속 변수 간의 관계를 정확하게 표현할 확률이다.
독립 변수와 종속 변수간의 관계를 정확하게 표현할 수록 데이터에 상대적으로 적합하다는건 당연한 사실이다.
그렇기 때문에 likelihood(LL)값이 높을 수록 더 좋은 feature set일 것이며, AIC가 더 낮은 값을 갖게 된다.

kk는 매개 변수의 숫자이다. 매개 변수로 쓰인 독립 변수가 많을 수록 종속 변수를 좀 더 잘 표현할 확률이 높아질 수 있지만, 불 필요한 정보량이 포함되거나 다중 공선성 문제도 생길 수 있으며 결론적으로는 모델이 부정확해질 수 있다.
그렇기 때문에 AIC 에서 2K2K 라는 매개 변수의 숫자에 따른 패널티 값을 부여하여 비교적 적은 매개 변수로 종속 변수를 정확하게 표현하는 경우를 찾는 것이다.

0개의 댓글