본문 바로가기
데이터 분석

피처 엔지니어링(Feature engineering) 방법, 단계별 종류 및 특징

by 데이널 2024. 4. 5.

위키독스에 따르면 피처 엔지니어링(Feature Engineering)이란 기존 데이터를 손보아 더 나은 변수를 만드는 기법으로 소개합니다. Feature engineering을 번역하면 특성 공학이라고도 하죠. 우리가 흔히 ’전처리‘라고 하는 과정에서 이루어지는 작업인데요. 전처리 중애 feature에 집중해서 생각해 보는 것, 그것이 피처 엔지니어링이라고 생각하면 이해가 되실 거예요. 
 

 
왜 피처 엔지니어링을 할까요? 이유는 feature(변수)들을 이용해 모델 성능을 향상할 수 있기 때문입니다. 그래서 데이터 분석 및 머신러닝의 중요한 단계입니다. 그렇다면 피처 엔지니어링에 대해 단계별로 이야기해 보겠습니다.
 

데이터 이해(EDA)

피처 엔지니어링을 시작하기 전에 데이터를 철저하게 이해하는 것이 중요합니다. 업무적인 이해도와 더불어 각각의 속성이 무엇을 나타내는지, 어떤 유형의 데이터가 포함되어 있는지 하나하나 분석해야 합니다. 그리고 그것이 우리가 풀려는 문제와 어떤 연관성이 있는지도 알아야 합니다. 이는 전처리의 중요성에서 이야기한 봐 있습니다.
 

Auto ML 다이어그램
Auto ML 다이어그램

새로운 feature 생성

피처 엔지니어링에는 데이터의 기본 패턴을 더 잘 찾아내기 위해 새로운 feature를 만듭니다. 어떻게 만드냐고요? 기존 feature들을 이용해 아래와 같은 다양한 방법을 이용할 수 있습니다. 

1. 변환

수치 특성에 로그, 제곱근, 지수 등의 수학 연산을 적용하여 분포를 모델링에 더 적합하게 만듭니다. 데이터 특성에 맞게 변환을 해야 알고리즘의 정확도를 높일 수 있습니다. 

2. 집계

다양한 그룹이나 기간에 걸쳐 합계, 평균 같은 집계 feature를 추가할 수 있습니다. 또는 건수를 계산하는 등 다양한 feature를 결합하여 새로운 feature를 만듭니다. 예를 들어, 약의 효능의 경우 최근 1주가 아니라 4주 전의 데이터가 더 좋은 데이터일 수 있습니다. 

3. 범주형 변수 인코딩

범주형 데이터의 경우 그대로 사용하면 해석할 수가 없습니다. 원-핫 인코딩 또는 레이블 인코딩과 같은 기술을 사용하여 범주형 변수를 숫자 표현으로 변환합니다.
 

4. 차원성 감소

주성분 분석(PCA) 또는 t-SNE과 같은 기술을 사용하여 새로운 feature를 만들 수 있습니다. 가능한 한 많은 정보를 보존하되, feature 공간의 차원을 줄이는 기법입니다.
 

결측 처리

 

데이터세트의 누락된 값을 처리하는 결측처리도 피처 엔지니어링 중의 하나입니다. 여기에는 평균, 중앙값 또는 모드 값으로 누락된 값을 대치하거나 특정 기능의 누락을 표시하기 위한 새로운 이진 표시기를 만드는 것이 포함될 수 있습니다. 결측처리에 대해서는 익숙한 분들도 많겠지만 아래 5가지 정도가 기본입니다. 기본적인 설명은 데이터 전처리 결측처리 부분을 참고하시기 바랍니다. 
 

1. 평균/중앙값 대치

누락된 값을 데이터 세트 전체에서 특성의 평균 또는 중앙값으로 바꿉니다. 이 방법은 간단하지만 데이터의 분포와 관계를 왜곡할 수 있습니다.

2. 모드(mode) 대치

범주형 변수의 경우 누락된 값을 특성의 모드(가장 빈번한 값)로 바꿉니다.

3. 예측 대치

통계 모델 또는 기계 학습 알고리즘을 사용하여 다른 특성을 기반으로 결측값을 예측합니다. 일반적인 기술에는 KNN(k-nearest neighbor) 대체, 회귀 대체 및 의사결정 트리 대체가 포함됩니다.

4. 핫 데크 대치

누락된 값을 데이터 세트의 유사한 사례 값으로 바꿉니다. 이 방법은 변수 간의 관계를 유지하지만 편향이 발생할 수 있습니다.

5. 다중 대치

서로 다른 귀속 값을 갖는 여러 귀속 데이터 세트를 생성하고 결과를 결합하여 대치의 불확실성을 설명합니다.

 

Feature Scaling

스케일링도 피처 엔지니어링입니다. 왜냐하면 모든 특성을 비슷한 규모로 유지하면 알고리즘의 성능을 향상하는 데 도움이 되기 때문입니다. 표준화(평균 0과 표준편차 1로 조정) 또는 최소-최대 조정(0과 1 사이의 범위로 조정)과 같은 기능 조정 기술을 숫자 특성에 적용할 수 있습니다. 이것도 데이터 전처리 스케일 part에서 설명한 적 있습니다.


검증 및 반복

새로운 feature를 만든 후에는 머신러닝 모델을 training 하고 평가하여 효과를 검증하는 것이 중요합니다. 새로운 feature가 모델 성능을 향상하지 못하는 경우 다시 돌아가야 합니다. 그리고 다양한 피처 엔지니어링 기술을 시도하거나 데이터에 대한 초기 가정을 다시 검토하는 것이 좋습니다.

이 과장이 무척 중요하기 때문에 분석 일정을 타이트하게 잡지 않아야 합니다. 개인적으로 이 부분을 간과해 정확도를 높이지 못하고 다음 단계로 넘어갔던 경험이 있습니다. 좋은 모델을 위해서는 검증과 반복을 여러 번 해야 합니다.

피처 엔지니어링은 머신러닝 모델의 성능을 향상하기 위해 기존 데이터에서 새로운 입력 기능을 생성하는 프로세스입니다. 여기에는 데이터의 기본 패턴을 더 잘 포착하고 모델의 예측력을 향상하기 위해 기능을 변환, 결합 및 선택하는 작업이 포함됩니다.