데이터분석/ML

Feature Engineering 00. 피처 엔지니어링이란?

하요공간 2023. 1. 24. 19:51
📌 어디선가 많이 들어본 Feature Engineering 을 위한 STEP 0 을 알아보자

Feature Engineering 이란?

 

피처 엔지니어링을 한 마디로 요약하자면 좋은 요리를 위해 좋은 재료를 준비하는 과정이다.

좋은 요리란 높은 성능의 머신러닝 모델이고 좋은 재료란 머신러닝에 활용되는 데이터를 말한다.

 

성능이 좋은 머신러닝 모델을 만들기 위해 컬럼을 선택하고 요리조리 선택하고 조정하는 과정을 Feature Engineering이라고 한다.

 

 

예시는 다음과 같다 :

  • 데이터 중에 눈에 띄게 크거나 작은 것은 없는지 → 이상치 처리
  • 누락된 데이터는 없는지 → 결측치 처리
  • 데이터의 분포가 유독 한쪽으로 치우쳐져있는지는 않는지 → 변환/정규화
  • 모델에 영향도가 큰 피처를 선택하고 → 피처 셀렉션
  • 여러 피처들을 통합해서 간소화하거나 → 차원축소
  • 데이터에 존재하는 컬럼 외에 필요한 새로운 변수 생성하는 것 → 파생변수 혹은 피쳐 엔지니어링

* Feature Engineering은 작은 의미로 파생변수 생성을 뜻하기도 한다.

 

 

Feature Engineering의 중요성

 

좋은 피쳐를 선택하여 가공하는 것이 모델 성능에 미치는 영향이 크다.

일명 데이터 전처리라고 부르는 이 과정을 데이터 분석가/사이언티스트들은 이 과정에서 대부분의 시간을 소모하기도 한다.

 

 

다음은 Jason Brownlee 의 글을 인용한 것이다  (참고문헌2)

 

Better features means flexibility.
좋은 피처는 유연해야 한다.
Better features means simpler models.
좋은 피처는 단순한 모델을 뜻한다.
Better features means better results.
좋은 피처는 더 좋은 결과를 가져다준다.

 

1,2는 비슷한 맥락으로 이해하면 좋다.

좋은 모델은 단순해야 하며 효율적이며 (빠르며) 설명가능하고 이해하기 쉬워야 한다는 것이다.

 

머신러닝은 복잡하고 고도화된 것이 좋은게 아닌가? 라고 생각하기 쉽지만

비슷한 성능을 낼 수 있다면 최대한 효율적인 것, 즉 빠르고 이해하기 쉬운 모델이 좋다는 의미로 받아들이면 될 것 같다.

 

 

좋은 Feature를 고르는 방법 

 

Feature Importance 라는 개념이 들어오는 구간이다.

모델에 사용된 피처들의 영향도로 순위를 매겨 높은 점수를 받은 피처들을 선택할 수 있다.

이 Feature Importance 점수를 보고 피처를 더 추가하거나 빼야 한다는 판단을 내릴 수도 있다.

 

  • Y와 상관성이 높을수록 유용한 피처이다.
  • correlation coefficient (피어슨 상관계수) 같은 단변량 분석 기법들이 주로 쓰인다.

 

조금 복잡한 알고리즘은 자체적으로 Feature importance 를 자체적으로 계산하며 모델을 만들기도 한다

ex. Decision Tree(의사결정나무), Gradient Boosting Models

 

 


참고문헌 :

  1. https://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/
  2. https://subinium.github.io/feature-selection/
  3. https://www.youtube.com/watch?v=9eP4bMqJYX4