#개념

특징 엔지니어링(Feature Engineering)은 원시 데이터를 머신러닝(Machine Learning) 모델이 효과적으로 학습할 수 있는 입력 변수, 즉 특징(feature)으로 변환하고 새로 만들어 내며 선별하는 일련의 과정이다. 모델은 주어진 특징 공간 안에서만 패턴을 찾을 수 있으므로, 어떤 정보를 어떤 형태로 모델에 제공하느냐가 성능의 상한을 결정한다. 실무에서는 알고리즘을 바꾸는 것보다 좋은 특징 하나를 추가하는 것이 성능을 더 크게 끌어올리는 경우가 흔하며, 이 때문에 특징 엔지니어링은 도메인 지식과 탐색적 데이터 분석(Exploratory Data Analysis, EDA)이 가장 직접적으로 모델 성능으로 이어지는 단계로 여겨진다. 특징 엔지니어링은 크게 결측치와 이상치의 처리, 수치형 변수의 변환, 범주형 변수의 인코딩, 새로운 변수의 생성, 특징 선택으로 나눌 수 있다.
결측치(missing value) 처리는 가장 먼저 마주치는 문제다. 결측이 완전히 무작위로 발생했는지(MCAR), 관측된 다른 변수에 의존하는지(MAR), 결측된 값 자체에 의존하는지(MNAR)에 따라 적절한 대응이 다르다. 단순한 방법으로는 평균·중앙값·최빈값 대체가 있고, 다른 변수로부터 결측값을 예측하는 KNN 대치나 반복적 회귀 대치(MICE) 같은 다변량 대치가 있다. 중요한 점은 결측 여부 자체가 정보인 경우가 많다는 것으로, 예를 들어 소득 항목이 비어 있다는 사실이 신용 위험과 상관될 수 있으므로 대치와 함께 결측 지시 변수(missing indicator)를 추가하는 것이 일반적이다. 트리 기반 모델은 결측을 별도 분기로 다룰 수 있어 대치에 덜 민감하지만, 선형 모델과 신경망(Neural Network)은 반드시 결측을 채워야 한다. 이상치(outlier)는 오류인지 실제 극단값인지 판단한 뒤 제거, 상·하한 절단(clipping, winsorizing), 로그 변환 등으로 영향을 완화한다.
스케일링(scaling)은 변수 간 단위와 범위 차이를 맞추는 작업이다. 평균 0, 표준편차 1로 맞추는 표준화(standardization) $z = (x - \mu) / \sigma$, 최솟값과 최댓값을 기준으로 $[0, 1]$ 범위로 맞추는 정규화(min-max normalization), 중앙값과 사분위 범위를 사용하여 이상치에 강건한 로버스트 스케일링이 대표적이다. 거리나 내적에 기반하는 경사 하강법(Gradient Descent) 학습 모델, KNN, SVM, 신경망은 스케일에 민감하므로 스케일링이 필수이지만, 결정 트리 계열은 분할 기준이 순서에만 의존하므로 영향을 받지 않는다. 분포가 심하게 치우친 변수에는 로그 변환이나 Box-Cox, Yeo-Johnson 같은 거듭제곱 변환, 분위수 변환을 적용하여 정규분포에 가깝게 만들기도 한다. 범주형 변수 인코딩은 문자열 범주를 수치로 바꾸는 작업으로, 범주마다 이진 열을 만드는 원-핫 인코딩(one-hot encoding), 순서가 있는 범주에 정수를 부여하는 순서 인코딩, 범주별 목표 변수의 평균으로 대체하는 목표 인코딩(target encoding), 등장 빈도로 대체하는 빈도 인코딩, 해시 함수로 고정 차원에 매핑하는 해싱 트릭이 있다. 목표 인코딩은 고유값이 많은 고카디널리티 변수에 효과적이지만 목표 변수 정보가 직접 새어 들어가므로 반드시 교차 검증 방식으로 폴드 밖에서 계산하고 스무딩을 적용해야 한다.
구간화(binning, discretization)는 연속형 변수를 몇 개의 범주 구간으로 나누는 기법이다. 동일 폭(equal-width), 동일 빈도(equal-frequency, 분위수) 구간화나 결정 트리를 이용한 지도 구간화가 있으며, 나이를 연령대로, 소득을 소득 구간으로 묶는 식이다. 구간화는 비선형 관계를 선형 모델이 포착하도록 돕고 이상치의 영향과 잡음을 줄이지만 정보 손실을 동반한다. 파생 변수(derived feature)는 도메인 지식을 바탕으로 기존 변수를 조합하여 만드는 새로운 변수로, 키와 몸무게로부터 체질량지수를 계산하거나 총 구매액을 구매 횟수로 나누어 평균 객단가를 만드는 것이 예다. 두 변수의 곱이나 비율처럼 변수 간 결합 효과를 표현하는 상호작용 특징(interaction feature)과 다항 특징은 선형 모델이 표현하지 못하는 관계를 명시적으로 제공한다. 집계 특징은 사용자별 최근 30일 구매 횟수, 상품별 평균 평점처럼 그룹 단위 통계량을 계산하여 개별 행에 결합하는 방식으로, 추천과 이탈 예측 등에서 가장 강력한 특징이 되는 경우가 많다.
데이터 유형에 따라 특화된 특징 기법도 있다.
  • 시간 특징 : 타임스탬프에서 연·월·요일·시간대·공휴일 여부를 추출하고, 시간이나 요일처럼 순환하는 값은 사인·코사인 변환 $(\sin\frac{2\pi t}{T}, \cos\frac{2\pi t}{T})$으로 23시와 0시가 인접하도록 표현한다. 시계열에서는 과거 값을 그대로 가져오는 지연(lag) 특징, 이동 평균과 이동 표준편차 같은 롤링 통계량, 이전 시점과의 차분이 핵심이다.
  • 텍스트 특징 : 토큰화(Tokenization) 후 단어 빈도를 세는 단어 가방(bag-of-words), 문서 내 빈도와 전체 문서에서의 희소성을 함께 반영하는 TF-IDF, 문자열 길이·특수문자 비율 같은 통계량, 그리고 사전 학습된 임베딩(Embedding) 벡터를 특징으로 사용한다.
  • 범주형·식별자 특징 : 우편번호, 상품 ID처럼 범주가 매우 많은 변수는 상위 계층으로 묶거나(우편번호 앞자리), 빈도 기반으로 희소 범주를 기타로 통합하거나, 임베딩 층으로 학습하여 밀집 벡터로 표현한다.
특징 선택(feature selection)은 만들어진 수많은 특징 중 실제로 도움이 되는 것만 남기는 과정으로, 불필요한 특징을 제거하면 과대적합(Overfitting)이 줄고 학습과 추론이 빨라지며 모델 해석이 쉬워진다. 방법은 세 가지로 분류된다. 필터(filter) 방식은 분산, 상관계수, 카이제곱 통계량, 상호 정보량처럼 모델과 무관한 통계량으로 특징을 평가하며 빠르지만 특징 간 상호작용을 고려하지 못한다. 래퍼(wrapper) 방식은 특징 부분집합으로 모델을 반복 학습하여 성능을 직접 비교하는 방식으로, 재귀적 특징 제거(RFE)와 전진·후진 선택이 대표적이며 비용이 크다. 내장(embedded) 방식은 라쏘(Lasso)처럼 L1 정칙화(Regularization)로 계수를 0으로 만들거나 트리 모델의 특징 중요도, 순열 중요도를 이용하듯 모델 학습 과정 자체에 선택이 포함된 방식이다. 이와 별개로 주성분 분석 같은 차원 축소(Dimensionality Reduction)는 기존 특징을 새로운 축으로 재조합하여 개수를 줄이는 특징 추출(feature extraction)에 해당한다.
특징 엔지니어링 전 과정에서 가장 경계해야 할 것은 데이터 누수(data leakage)다. 데이터 누수는 예측 시점에는 알 수 없는 정보가 학습 특징에 포함되어 검증 성능은 높지만 실제 운영에서는 재현되지 않는 현상을 말한다. 대표적인 형태로는 전체 데이터셋으로 스케일러나 대치 통계량, 목표 인코딩을 계산한 뒤 학습·검증으로 나누는 학습-검증 오염, 예측 시점 이후에 생성되는 값(예: 대출 승인 예측에 상환 이력을 사용)을 특징으로 쓰는 목표 누수, 시계열에서 미래 정보를 포함한 롤링 통계량을 쓰는 시간 누수가 있다. 이를 막기 위해서는 모든 변환을 학습 폴드 안에서만 적합(fit)한 뒤 검증 데이터에 적용(transform)하도록 파이프라인으로 구성하고, 시계열에서는 시간 순서를 지키는 분할을 사용하며, 각 특징이 예측 시점에 실제로 존재했는지(point-in-time correctness)를 검토해야 한다. 지나치게 좋은 검증 성능이나 상식 밖으로 중요도가 높은 특징은 누수의 신호로 의심해야 한다.
실제 서비스에서는 학습 시점에 계산한 특징과 운영 시점에 계산하는 특징이 서로 달라지는 학습-서빙 불일치(training-serving skew)가 자주 발생한다. 이를 해결하기 위해 특징의 정의·계산·저장·제공을 중앙에서 관리하는 피처 스토어(feature store)가 도입되었다. 피처 스토어는 학습용 대량 조회를 위한 오프라인 저장소와 실시간 추론을 위한 낮은 지연 시간(Latency)의 온라인 저장소를 함께 제공하며, 시점 정합 조인(point-in-time join)으로 데이터 누수를 방지하고, 팀 간 특징 재사용과 계보 추적을 가능하게 한다. 데이터 파이프라인(Data Pipeline) 위에서 특징 생성을 자동화하는 도구와 다수의 후보 특징을 자동으로 생성·평가하는 자동 특징 엔지니어링도 발전하고 있으나, 도메인 지식에 기반한 특징 설계를 완전히 대체하지는 못한다.
한편 딥러닝(Deep Learning)은 원시 입력으로부터 계층적 표현을 스스로 학습하는 표현 학습(representation learning)을 통해 이미지·음성·텍스트 영역에서 수작업 특징 설계의 상당 부분을 대체했다. 과거 컴퓨터 비전에서 SIFT나 HOG 같은 특징을 사람이 설계하던 것을 합성곱 신경망(Convolutional Neural Network, CNN)이 학습된 필터로 대신하게 된 것이 대표적이다. 그러나 이는 특징 엔지니어링이 사라졌다기보다 그 형태가 바뀐 것에 가깝다. 딥러닝에서도 입력의 정규화, 토큰화 방식, 데이터 증강, 범주형 변수의 임베딩 설계는 여전히 사람의 판단이 필요하며, 표 형태 데이터에서는 잘 설계된 특징을 입력받은 그래디언트 부스팅 같은 앙상블 학습(Ensemble Learning) 모델이 딥러닝을 능가하는 경우가 많다. 결국 특징 엔지니어링은 데이터에 담긴 도메인 지식을 모델이 이해할 수 있는 언어로 번역하는 일이며, 누수 없이 재현 가능하게 구현하는 공학적 규율과 함께할 때 모델 성능과 신뢰성을 동시에 높이는 핵심 역량이 된다.

#관련 용어

결측치 대치
비어 있는 값을 평균·중앙값·예측값 등으로 채워 모델이 처리할 수 있게 만드는 기법
원-핫 인코딩
범주형 변수의 각 범주를 0과 1로 이루어진 별도의 이진 열로 변환하는 인코딩 방식
데이터 누수
예측 시점에 알 수 없는 정보가 학습 특징에 포함되어 검증 성능이 실제보다 과대평가되는 현상
피처 스토어
특징의 정의와 계산, 저장, 제공을 중앙에서 관리하여 학습과 서빙의 일관성을 보장하는 시스템
탐색적 데이터 분석
시각화와 요약 통계를 통해 데이터의 분포와 구조, 이상 징후를 파악하는 분석 과정
차원 축소
정보 손실을 최소화하면서 특징의 개수를 줄여 새로운 저차원 표현을 얻는 기법

#직무 연관도

DA
Data Analyst
높음
파생 변수 설계와 구간화, 결측치 처리는 분석 리포트와 예측 모델 모두의 기반이 된다
DS
Data Scientist
밀접
모델 성능의 상한을 결정하는 단계로, 도메인 지식을 특징으로 변환하고 누수 없이 검증하는 능력이 핵심 역량이다
DE
Data Engineer
높음
특징 파이프라인의 자동화와 피처 스토어 구축, 학습-서빙 일관성 보장을 담당한다

#사용 사례

전자상거래금융의료통신제조온라인 광고
개요
특징 엔지니어링은 신용 평가, 사기 탐지, 수요 예측, 추천 시스템, 질병 예측, 설비 고장 예측 등 데이터 기반 예측 모델을 구축하는 모든 영역에서 필수적으로 수행된다. 특히 표 형태 데이터를 다루는 산업 현장에서는 모델 선택보다 특징의 품질이 성과를 좌우하는 경우가 많다.
사례
이커머스 이탈 예측 모델에서는 원시 접속 로그와 주문 기록으로부터 최근 7일·30일 방문 횟수, 마지막 구매 이후 경과 일수, 평균 객단가, 주 구매 카테고리 비율, 요일별 접속 패턴 같은 집계·시간 특징을 생성한다. 이때 예측 기준일 이후의 로그가 섞이지 않도록 시점 정합 조인으로 특징을 계산하고, 동일한 정의를 피처 스토어에 등록하여 학습과 실시간 추론에서 같은 값을 사용하도록 한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.