일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- yolov3
- Computer Vision
- DeepLearning
- CNN
- pytorch c++
- 데이터 전처리
- pytorch project
- fast r-cnn
- darknet
- Deep Learning
- yolo
- computervision
- CS231n
- SVM 이란
- svdd
- TCP
- support vector machine 리뷰
- EfficientNet
- cnn 역사
- SVM margin
- libtorch
- Object Detection
- 논문분석
- SVM hard margin
- RCNN
- cs231n lecture5
- 서포트벡터머신이란
- Faster R-CNN
- self-supervision
- pytorch
- Today
- Total
아롱이 탐험대
[Dimensionality Reduction] Supervised Methods 1: Forward selection, Backward elimination, Stepwise selection 본문
[Dimensionality Reduction] Supervised Methods 1: Forward selection, Backward elimination, Stepwise selection
ys_cs17 2022. 7. 31. 20:55본 포스트는 고려대학교 산업경영공학부 강필성 교수님의 Business Analytics 강의를 정리한 내용입니다.
Feature selection
Feature selection은 가지고 있는 변수 중 의미 있는 일부분의 변수를 추출하는 것이다. 원본의 변수를 치환 또는 변환을 하지 않는다.
Exhaustive Search
가장 쉽게 생각할 수 있는 feature selection 기법은 exhaustive search가 있다. 이는 가능한 모든 조합에 대해 탐색을 하여 feature selection을 진행하는 방법이다.
$$ x_{1}, x_{2},x_{3} $$
만약 위와 같이 3개의 변수가 있다면, 이에 해당하는 모든 조합은 아래와 같이 총 7가지가 된다.
$$ (x_{1}), (x_{2}),(x_{3}),(x_{1},x_{2}), (x_{1},x_{3}),(x_{2},x_{3}), (x_{1},x_{2}, x_{3}) $$
해당 변수에 대해 AIC, BIC, Adjusted $R^{2}$와 같은 지표를 사용하여 성능이 가장 좋은 변수의 조합을 선택하면 된다.
Exhaustive search는 변수의 개수가 많아지면 모델에 대한 연산 시간이 매우 많이 걸리게 된다. 위 plot에서 초록색 그래프가 exhaustive search의 연산 속도이다. exhaustive search의 장점은 global opimal을 찾을 수 있다는 점이다.
Forward Selection
Exhaustive search보다는 성능은 좋지 않지만, 시간을 줄이는 방법으로는 Forward selection과 Backward elimination이 있다.
FS (Forward Selection)부터 살펴보자. 아래와 같이 linear regression model을 기준으로 보자.
총 8개의 변수가 존재할 때 FS는 우선 각 변수를 1개씩만 사용한다. 각 조합에 대한 $R^{2}$를 지표를 사용한다고 가정하자.
위 수식에서는 $x_{2}$를 사용할때가 가장 성능이 높은 것을 확인할 수 있다.
$x_{2}$를 고정하고, 다시 8개의 변수를 각각 더한다. 여기에 대해서도 $R^{2}$를 적용한다. $x_{7}$이 가장 높은 것을 볼 수 있다.
$x_{7}$를 고정한 후 다시 반복한다. $x_{4}$를 채택한다.
$x_{4}$까지 고정한 후 지표를 측정해보면 더 이상 $R^{2}$가 증가하지 않는 모습을 볼 수 있다. 최종적으로 우리는 FS를 통해 아래와 같은 model을 선택한다.
$$ \hat{y} = \hat{\beta_{0}} + \hat{\beta_{2}}x_{2}+ \hat{\beta_{7}}x_{7}+ \hat{\beta_{4}}x_{4}, \ \ R^{2}_{adj}=0.76 $$
FS는 추가 된 변수에 대해 절대로 제거가 되지 않는다는 특징을 가지고 있다.
Backward Elimination
BE (Backward Elimination)는 FS의 반대라고 생각하면 된다. 쉽게 말해 변수를 하나씩 없애는 방법론이다.
$$ \hat{y} = \hat{\beta_{0}} + \hat{\beta_{1}}x_{1}+ \hat{\beta_{2}}x_{2}+\hat{\beta_{3}}x_{3}+\hat{\beta_{4}}x_{4}+\hat{\beta_{5}}x_{5}+\hat{\beta_{6}}x_{6}+\hat{\beta_{7}}x_{7}+\hat{\beta_{8}}x_{8}, R^{2}_{adj}=0.77 $$
위와 같이 linear regression model이 있다고 하자.
여기서 각 변수를 하나씩 뺀 후 이에 대한 지표를 측정한다. 결과에 대한 감소 값을 hyper parameter로 두고, 해당 값보다 낮아지면 BE를 종료한다.
위 결과를 보면 $x_{3}$을 제거 하였을 때가 가장 성능이 좋은 것으로 보인다.
그 후 다시 하나씩 제거 한다. $x_{8}$을 제거하였을 때 가장 작게 감소한 모습을 볼 수 있다.
이 후 지표에 대한 감소가 커짐과 동시에 BE를 종료한다. 최종적으로 아래 수식과 같은 모델을 채택한다.
$$ \hat{y} = \hat{\beta_{0}} + \hat{\beta_{1}}x_{1}+ \hat{\beta_{2}}x_{2}+ \hat{\beta_{4}}x_{4}+\hat{\beta_{5}}x_{5}+\hat{\beta_{6}}x_{6}+\hat{\beta_{7}}x_{7}+, \ \ R^{2}_{adj}=0.76 $$
BE의 경우는 FS와는 다르게 한번 제거된 변수는 절대로 추가가 되지 않는다.
Stepwise Selection
FS, BE 보다 연산량은 많지만, 성능을 더 좋게하기 위해 stepwise selection이라는 방법론이 등장했다. 이는 FS와 BE를 번갈아가면서 수행한다. 이로 인해 변수가 선택이나 제거되어도 다음 텀에서 다시 제거되거나 선택될 수 있다.
$$ \hat{y} = \hat{\beta_{0}} + \hat{\beta_{2}}x_{2}, \ \ R^{2}_{adj}=0.56 $$
우선은 FS를 통해 성능이 가장 높은 변수를 선택한다. 위 수식을 통해 $x_{2}$를 선택한 모습을 볼 수 있다.
이후 제거를 해야 하지만, 초기 값보다는 $x_{2}$를 선택한 것이 성능이 더 좋아 제거하지 않는다.
그 후 다시 FS를 진행한다.
$$ \hat{y} = \hat{\beta_{0}} + \hat{\beta_{2}}x_{2}+ \hat{\beta_{7}}x_{7}, \ \ R^{2}_{adj}=0.70 $$
FS를 통해 $x_{7}$을 선택한 모습을 볼 수 있다.
그 다음 제거를 해야 하지만, $x_{2}, x_{7}$을 제거해도 성능이 좋아지지는 않아 그대로 내버려둔다.
$$ \hat{y} = \hat{\beta_{0}} + \hat{\beta_{2}}x_{2}+ \hat{\beta_{7}}x_{7} + \hat{\beta_{4}}x_{4}, \ \ R^{2}_{adj}=0.76 $$
FS를 통해 $x_{4}$를 선택하였다.
이후 BE를 진행하였는데, $x_{2}$를 제거했는데 성능이 더 좋아진 모습을 볼 수 있다. 따라서 $x_{2}$를 제거한다.
이후 다시 FS, BE를 반복한 후, 성능이 개선이 되지 않을 때까지 반복한다.
'study > IME654' 카테고리의 다른 글
[Dimensionality Reduction] Unsupervised Method (Linear embedding) 1: Principal component analysis (PCA) (0) | 2022.08.09 |
---|---|
[Dimensionality Reduction] Supervised Methods 2: Genetic algorithm (0) | 2022.08.05 |
[Anomaly Detection] SVDD (0) | 2022.07.24 |
[Anomaly Detection] Auto-Encoder, One class SVM (0) | 2022.07.16 |
[Anomaly Detection] Distance, Clustering, PCA-based Methods (0) | 2022.07.11 |