본문 바로가기
쫌쫌따리 통계+데이터+AI

변수 선택법

by stherhj 2022. 3. 11.

독립변수의 수가 많아지면 모델의 복잡도가 올라가며 성능이 올라가지만 너무 많아지면 그 성능이 낮아진다.

학습성능이 높아지더라도 예측성능이 떨어질 수 있다(과적합이슈). either feature selection or feature extraction

Feature Selection
1. Filter: 1:1 상관관계 확인, 주관적 판단 (특히 요즘 비추하는 추세 업계 짬 신뢰도<<알고리즘 신뢰도) 
2. Wrapper: 정량적 모형평가척도에 의한 판단

 

후진제거법을 통한 변수 선택 수행 (direction="backward")

step(lm(Sales~CompPrice+Income+Advertising+Population+Price+Age+Education, data=car), direction="backward")

기존 독립변수 후보 전체(7개)에서 AIC(벌점) 감소에 큰 기여를 하는 변수 순(Population, Education)으로 삭제하여 변수를 삭제하였을 때 더 이상 AIC가 줄어들지 않는 선(5개)까지 삭제한다.

 

전진선택법을 통한 변수 선택 수행 (direction="forward")

 

단계적선택법을 통한 변수 선택 수행 (direction="both")

step(lm(Value~1, data=fifa), scope=list(lower=~1, upper~Age+Overall+Wage+Height_cm+Weight_lb), direction="both)

->전진선택법과 단계적선택법의 차이?

: 전진 선택법과 흐름이 비슷. 추가할 때 중요하지 않은 변수가 들어오면 각 단계에서 중요하지 않은 변수를 제거하고 다시 변수를 추가한다

 

->(코드) scope 유무의 차이?(후진제거법은 scope을 안쓰나?)

: 후진제거법은 어차피 upper에서 시작해서 lower까지 주로 가지 않으니 scope을 생략하는 경우가 많은듯??

 

3. Embedded: 회귀모형 추정=회귀계수 추정. 회귀계수->최소자승법 오차 최소화 (최적화의 과정) 이 최적화의 과정을 활용 유효한 독립변수 선택
Lasso, Ridge

Feature Extraction

PCA, PLS(첨들어봄..PCA랑 비슷한거라고 함)

pca_dt <- prcomp(dt,
                 center = T,
                 scale. = T)
#PCA 결과 시각화하기 1 - Scree Chart
# Proportion of variance 출력
plot(pca_dt,
     type = "l")
     
summary(pca_dt)
################까지

#PCA 결과 시각화하기2 - ggbiplot
# 라이브러리 설치 및 불러오기
install_github("devtools")
library(devtools)
install_github("ggbiplot", "vqv")
library(ggbiplot)
# 시각화하기
g <- ggbiplot(pca_dt,
              choices = c(1, 2),
              obs.scale = 1,
              var.scale = 1,
              groups = dt_group,
              ellipse = TRUE,
              circle = TRUE)
g <- g + scale_color_discrete(name = '')
g <- g + theme(legend.direction = 'horizontal', 
               legend.position = 'top')

-

계속 stepwise selection 이랑 l1, l2 이 친구들이 어디서 다른건지 변수 선택할 떄 뭘로 해야하는건지 헷갈렸는데 (머신러닝할 땐 stepwise 쓰고 딥러닝할 땐 주로 l1, l2쓴다 이케 생각하고 있었는데) 그냥 변수선택의 서로 다른 방식이었다. stepwise 친구는 AIC 기준으로 모형 전체 벌점 카운트 줄여가는 방식으로 할 때 쓰는거고 l1, l2는 회귀식의 최적화 (오차최소화) 방향으로 나갈 때 쓰는거! 라고 이해..아닐지도..

'쫌쫌따리 통계+데이터+AI' 카테고리의 다른 글

Data Imbalance 이슈 해결 : 언더샘플링 & 오버샘플링  (0) 2022.03.20
선형회귀  (0) 2022.03.12
통계학습  (0) 2022.03.12
잔차분석  (0) 2022.03.11
T-TEST|ANOVA|상관분석  (0) 2022.03.11

댓글