일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pytorch c++
- fast r-cnn
- libtorch
- SVM hard margin
- EfficientNet
- 데이터 전처리
- TCP
- cs231n lecture5
- pytorch project
- SVM 이란
- CS231n
- yolo
- pytorch
- self-supervision
- Faster R-CNN
- SVM margin
- Object Detection
- DeepLearning
- svdd
- Computer Vision
- CNN
- 논문분석
- cnn 역사
- RCNN
- yolov3
- Deep Learning
- support vector machine 리뷰
- darknet
- 서포트벡터머신이란
- computervision
- 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을 진행하는 방법이다.
x1,x2,x3
만약 위와 같이 3개의 변수가 있다면, 이에 해당하는 모든 조합은 아래와 같이 총 7가지가 된다.
(x1),(x2),(x3),(x1,x2),(x1,x3),(x2,x3),(x1,x2,x3)
해당 변수에 대해 AIC, BIC, Adjusted R2와 같은 지표를 사용하여 성능이 가장 좋은 변수의 조합을 선택하면 된다.

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개씩만 사용한다. 각 조합에 대한 R2를 지표를 사용한다고 가정하자.
위 수식에서는 x2를 사용할때가 가장 성능이 높은 것을 확인할 수 있다.

x2를 고정하고, 다시 8개의 변수를 각각 더한다. 여기에 대해서도 R2를 적용한다. x7이 가장 높은 것을 볼 수 있다.

x7를 고정한 후 다시 반복한다. x4를 채택한다.

x4까지 고정한 후 지표를 측정해보면 더 이상 R2가 증가하지 않는 모습을 볼 수 있다. 최종적으로 우리는 FS를 통해 아래와 같은 model을 선택한다.
ˆy=^β0+^β2x2+^β7x7+^β4x4, R2adj=0.76
FS는 추가 된 변수에 대해 절대로 제거가 되지 않는다는 특징을 가지고 있다.
Backward Elimination
BE (Backward Elimination)는 FS의 반대라고 생각하면 된다. 쉽게 말해 변수를 하나씩 없애는 방법론이다.
ˆy=^β0+^β1x1+^β2x2+^β3x3+^β4x4+^β5x5+^β6x6+^β7x7+^β8x8,R2adj=0.77
위와 같이 linear regression model이 있다고 하자.
여기서 각 변수를 하나씩 뺀 후 이에 대한 지표를 측정한다. 결과에 대한 감소 값을 hyper parameter로 두고, 해당 값보다 낮아지면 BE를 종료한다.

위 결과를 보면 x3을 제거 하였을 때가 가장 성능이 좋은 것으로 보인다.

그 후 다시 하나씩 제거 한다. x8을 제거하였을 때 가장 작게 감소한 모습을 볼 수 있다.

이 후 지표에 대한 감소가 커짐과 동시에 BE를 종료한다. 최종적으로 아래 수식과 같은 모델을 채택한다.
ˆy=^β0+^β1x1+^β2x2+^β4x4+^β5x5+^β6x6+^β7x7+, R2adj=0.76
BE의 경우는 FS와는 다르게 한번 제거된 변수는 절대로 추가가 되지 않는다.
Stepwise Selection
FS, BE 보다 연산량은 많지만, 성능을 더 좋게하기 위해 stepwise selection이라는 방법론이 등장했다. 이는 FS와 BE를 번갈아가면서 수행한다. 이로 인해 변수가 선택이나 제거되어도 다음 텀에서 다시 제거되거나 선택될 수 있다.
ˆy=^β0+^β2x2, R2adj=0.56
우선은 FS를 통해 성능이 가장 높은 변수를 선택한다. 위 수식을 통해 x2를 선택한 모습을 볼 수 있다.
이후 제거를 해야 하지만, 초기 값보다는 x2를 선택한 것이 성능이 더 좋아 제거하지 않는다.
그 후 다시 FS를 진행한다.
ˆy=^β0+^β2x2+^β7x7, R2adj=0.70
FS를 통해 x7을 선택한 모습을 볼 수 있다.
그 다음 제거를 해야 하지만, x2,x7을 제거해도 성능이 좋아지지는 않아 그대로 내버려둔다.
ˆy=^β0+^β2x2+^β7x7+^β4x4, R2adj=0.76
FS를 통해 x4를 선택하였다.

이후 BE를 진행하였는데, x2를 제거했는데 성능이 더 좋아진 모습을 볼 수 있다. 따라서 x2를 제거한다.
이후 다시 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 |