ALL NIGHT STUDY

Feature Engineering

with_AI 2021. 9. 16. 02:01

 

Feature Engineering?

머신러닝 알고리즘을 작동하기 위해 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정

Feature Engineering은 모델 성능에 미치는 영향이 크기 때문에 머신러닝 응용에 있어서 굉장히 중요한 단계이며, 전문성과 시간과 비용이 많이 드는 작업이다.

Feature?

  • 머신러닝은 매번 학습이 잘되어 결과가 나타나지 않는다.
  • 즉, 머신 러닝의 성능은 어떤 데이터를 입력하는지가 굉장히 의존적이다.
  • 먼저 충분한 데이터를 먼저 모으고 어떤 feature가 유용한지 아닌지 확인하는 과정을 거친다.
  • feature가 유용한지 아닌지 확인하는 과정을 특징 선택(feature selection) 또는 특징 추출(feature extraction) 이라고 한다. 해당 과정은 기존 입력을 토대로 새로운 입력 데이터를 만들기 때문에 보통 learning 과정 전에 실행된다.

Feature Engineering 예시

 

Feature Engineering의 예시로는 BMI가 있다.

몸무게, 신장에 대한 데이터를 가지고 비만도라는 새로운 Feature을 만든 것이다!

BMI라는 도메인 지식이 있어야 이러한 Feature Engineering이 가능하다.

 

 

다른 예시로는 통계값을 활용한 feature engineering이 있는데,

평균, 분산, 표준편차, 합, 중앙값을 새로운 feature로 생성한다.

  • 중요도가 높은 변수를 사용하여 파생변수들을 만들어낸다면 더욱 높은 성능을 내는 모델을 만들 수 있다.
  • EDA에서 데이터 전체의 특징과 데이터 간의 관계를 파악한 후 통계값을 활용하여 변수를 만들어낸다면 더 효과적으로 도움이 될 수 있다.

 


Feature Engineering 방법

 

Dimension Reduction(차원 감소)

  • 차원 감소는 feature extraction 다시 말해 특징 추출이라는 말로도 불린다.
  • 우리는 feature모두가 필요한 것은 아니다. (몇몇의 feature는 다른 특징들의 조합으로 표현가능할 수도있고 어떤 feature는 특정 feature의 완벽히 상반될 수 있기 때문)
  • 관찰 공간 위의 샘플들에 기반으로 잠재 공간을 파악하는 것을 차원 축소(dimensionality reduction technique) 라고 한다. 이렇게 데이터의 차원을 줄이는 데에는 특징 선택(feature selection)과 특징 추출 (feature extraction) 두 가지 방법이 있다.

1. Feature Selection(특징 선택)

  • 특징 랭킹(Feature Ranking) 또는 특징 중요도(Feature Importance)라고도 한다.
  • 특징 선택의 목적은 모든 특징의 부분 집합을 선택하거나, 불필요한 특징을 제거하여 간결한 특징 집합을 만드는 것이다.
  • 분석자가 사전의 배경 지식 을 이용해서 진행 할 수도 있지만, 자동 특징 선택 (automatic feature selection methods)을 사용할 수도 있다.
  • 해당 방법들은 특징 중 몇 개를 없애보고 개선된다면 성능을 확인해보는 방법이며 이것은 대부분의 특징 선택 알고리즘의 기본 동작방식이다.

분류 모델 중 Decision Tree 같은 경우는 트리의 상단에 있을 수록 중요도가 높으므로 이를 반영하여 특징 별로 중요도를 매길수 있다. 회귀 모델의 경우 forward selection과 backward elimination같은 알고리즘을 통해 특징을 선택 가능하다.

2. feature extraction(특징 추출)

  • 특징 추출이 특징 선택과 다른 점은 원본 특징 들의 조합으로 새로운 특징을 생성하는 것이다.
  • 고차원의 원본 feature 공간을 저차원의 새로운 feature 공간으로 투영시킨다.
  • 새롭게 구성된 feature 공간은 보통은 원본 feature 공간의 선형 또는 비선형 결합이다.

가장 대표적인 알고리즘에 PCA(Principle Component Analysis)가 있다. PCA를 간단히 설명하면 각 변수(Feature)를 하나의 축으로 투영시켰을 때 분산이 가장 큰 축을 첫번째 주성분으로 선택하고 그 다음 큰 축을 두번째 주성분으로 선택하고 데이터를 선형 변환하여 다차원을 축소하는 방법이다.

'ALL NIGHT STUDY' 카테고리의 다른 글

Tidy 데이터  (0) 2021.09.16
Concat/Merge  (0) 2021.09.16
Pandas(Python Data Analysis Library)  (0) 2021.09.16
데이터 전처리(Pre-Processing)  (0) 2021.09.16
EDA(Exploratory Data Analysis)  (0) 2021.09.16