회귀 분석, 꼭 모든 Feature가 필요한 걸까?
출퇴근길에 공부하는 머신러닝
들어가며
회귀(Regression) 모델링에서는 데이터의 feature(특성)들이 모델의 성능에 큰 영향을 미친다. 너무 많은 feature를 사용하면 overfitting의 위험이 있으며, 너무 적은 feature를 사용하면 모델의 예측 능력이 떨어질 수 있다. 또한 불필요한 feature를 제거하면 계산 시간을 절약할 수 있으며, 모델의 해석도 간결하고 명확하게 만들어준다. 그렇다면 최적의 feature 조합을 찾을 수 있을까? 이번 편에서는 이 질문에 대한 답을 소개해드리고자 한다. 즉, feature selection의 중요성과 다양한 선택기법에 대해서 살펴보도록 하겠다.
Feature Selection의 기법
Exhaustive Search(완전 탐색)
이 방법은 가능한 모든 feature 조합을 탐색하여 최적의 부분 집합(subset)을 찾는다. 예를 들어, 3개의 변수가 있다면 가능한 모든 경우의 수인 총 7개(예: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C})의 가능한 부분 집합(subset) 중 최적의 조합을 찾게 되는 것이다. 그러나 이 방법의 치명적인 단점이 있는데, 이는 바로 feature의 수가 증가함에 따라 계산 복잡도가 기하급수적으로 증가한다는 것이다.
Forward Selection
모델에 아무런 변수 없이 시작하여, 중요한 변수를 순차적으로 추가하는 방법으로, 각 단계에서 남아있는 변수 중에서 가장 성능 향상에 크게 기여하는 변수를 선택하여 추가한다. 이러한 과정을 변수의 추가로 인한 성능의 변화가 없을 때까지 반복한다.
Backward Elimination
모든 변수를 포함한 상태에서 시작하여, 가장 중요하지 않은 변수를 순차적으로 제거하는 방법이다. 각 단계에서는 모델 성능에 가장 적은 기여를 하는 변수를 찾아 제거를 한다. 그리고 이 역시도 Forward Selection과 마찬가지로 변수 제거로 인해서 성능의 변화가 없을 때까지 이 과정을 반복한다.
Stepwise Selection
이는 Forward Selection과 Backward Elimination의 조합이며, 변수를 추가하고 제거하는 과정을 번갈아 가며 수행한다. 이 방법은 두 가지 방법의 장점을 모두 활용하였기에 feature subset을 찾을 가능성이 높아진다. 하지만 시간이 오래 걸린다는 단점이 있다.
마치며
이와 같이 위의 기법 중 해당 프로젝트에 적합한 Feature Selection 기법을 선택하여 보다 더 효율적인 모델학습과 효과적인 모델을 만들 수 있을 것이다. 그리고 다음 시간에는 Penalty Term에 대해서 살펴볼 예정이다. 이 역 Feature Selection이지만 이번 편과는 다른 차이점이 있을 것이다.