[머신러닝] Feature Engineering

kkiyou·2021년 8월 8일
0

Machine Laerning

목록 보기
5/10

Feature Engineering

머신러닝 알고리즘에 사용되는 입력 데이터에 해당하는 Features들을 처리하는 프로세스를 의미한다.

특성공간 차원축소의 필요성

  • 모델의 해석력 향상(차원의 저주 방지)
    너무 많은 Features를 사용하면 해석하기 어렵기 때문에 Features를 줄여서 직관적으로 이해하기 쉽게 만든다. 각 Feature마다 하나의 Axis로 표현되기 때문에 Axis가 3차원만 되도 직관적으로 이해하기 쉽지 않고, 4차원 이상부터는 이해가 불가하다.
  • 모델 훈련시간 단축
  • 과적합(overfitting)에 의한 일반화 오차 감소를 통한 성능 향상



1. Feature Selection

Features 중에서 예측 모델에 영향력이 큰 Feature의 조합을 선택한다. 즉 불필요한 Features를 제거한다.

1) Filtering
Features의 우선순위를 매겨 상위 n개를 선택한다. 즉 각 Features(XiX_i)와 목표(YY)의 연관성을 측정하여, 상관관계가 높은 Features(XiX_i) n개를 선택하는 것이다. 연관성을 측정할 때는 t-test, chi-square test(카이제곱), information gain 등의 통계 개념을 사용한다.

2) Wrapper
Features를 랜덤하게 n개 선택하여 모델에 학습시켜보며 가장 좋은 조합은 선택한다. 예컨대 Features가 X1,X2,X3X_1, X_2, X_3이 있다면,

[(X1),(X2),(X3)[(X_1), (X_2), (X_3)
(X1,X2),(X1,X3),(X2,X3)(X_1, X_2), (X_1, X_3), (X_2, X_3)
(X1,X2,X3)](X_1, X_2, X_3)]
총 7개의 조합이 존재하며 각 조합을 모델에 학습시켜 Y값을 가장 잘 예측한 조합을 선택하는 방식이다. 따라서 Features가 n개 있으면 조합의 개수는 2n12^n - 1개다.
따라서 계싼 시간이 매우 오래 소요된다는 단점이 있다. 또 과적합 가능성이 존재한다.

  • Forward selection
    연관성이 높은 Feature를 하나씩 추가하면서 모델을 학습시키는 방식이다.
  • backward selection
    연관성이 낮은 Feature를 하나씩 제거하면서 모델을 학습시키는 방식이다.
  • stepwise selection
    Forward selection와 backward selection를 동시에 하는 방식이다.

3) Embedded
머신러닝 알고리즘(모델) 내부에서 Feature를 선택하는 프로세스가 내장되어 있는 모델 학습 과정에서 최적화된 Features를 선택한다.


특성 변수에 규제를 가하는 방식

  • Ridge
  • Lasso
  • Elastic net

TODO:




2. Feature Extraction

Features를 결합하여 보다 유용한 Features를 새롭게 생성한다.
예컨대 Features가 X1,X2,X3...XnX_1, X_2, X_3 ... X_n일 때 새로운 Features
XN1XN_1α1X1,α2X2,α3X3...αnXn\alpha_1 X_1, \alpha_2 X_2, \alpha_3 X_3 ... \alpha_n X_n로,
XN2XN_2β1X1,β2X2,β3X3...βnXn\beta_1 X_1, \beta_2 X_2, \beta_3 X_3 ... \beta_n X_n로 계산된다.

1) PCA(Principal component analysis)
주성분 분석,
2) SVD(Singular Value Decomposition)
3) LDA(Linear discriminant analysis)
4) NMF(Non-negative matrix factorization)

0개의 댓글