기술과 산업/AI
AI/ML 기반 데이터 분석 시리즈 6화 - 피처 엔지니어링과 스케일링 전략: 데이터의 본질을 꿰뚫는 변환 기법
B컷개발자
2025. 5. 7. 15:50
728x90
모델 성능의 대부분은 좋은 알고리즘보다 좋은 피처에서 나옵니다.
이번 글에서는 데이터를 모델이 해석할 수 있는 구조로 바꾸는 실전 기술인 피처 엔지니어링(feature engineering) 과 스케일링(scaling) 전략을 정리합니다.
AI 분석에서의 핵심 원칙은 ‘데이터를 버리지 않고 최대한 살려내는 것’입니다.
1. 피처 엔지니어링이란?
피처 엔지니어링은 단순히 컬럼을 추가하거나 변환하는 작업을 넘어,
모델이 학습하기 쉬운 구조로 데이터를 재설계하는 과정입니다.
대표 목적은 다음과 같습니다:
- 모델의 예측력을 높이기 위한 정보 구조화
- 복잡한 관계를 단순화
- 비정형/범주형 데이터를 수치화
- 모델 입력 조건을 맞추기 위한 스케일 정규화
2. 변수 변환 기법
2.1 수치형 데이터 변환
기법목적예시
로그 변환 | 분포 압축, 왜도 감소 | 소득, 판매량, 클릭 수 |
제곱근 변환 | 완만한 곡선화 | 심하게 오른쪽 치우친 분포 |
Box-Cox, Yeo-Johnson | 정규성 확보 | 통계 모델 전처리 |
범위 압축 (Clipping) | 이상치 영향 최소화 | 상위 99% cut-off |
df['log_income'] = np.log1p(df['income']) # log(1 + x)
df['sqrt_score'] = np.sqrt(df['score'])
2.2 범주형 데이터 처리
One-Hot Encoding
- 예: [‘Male’, ‘Female’] → [1, 0], [0, 1]
- 라이브러리: pd.get_dummies(), OneHotEncoder
Label Encoding
- 순서형 범주: [‘Low’, ‘Medium’, ‘High’] → [0, 1, 2]
- 주의: 트리 기반 모델엔 괜찮지만, 거리 기반 모델엔 왜곡 발생
Count Encoding
- 각 범주가 등장한 횟수로 변환 → 희소도 낮춤
Target Encoding
- 각 범주의 평균 타겟 값으로 인코딩 (e.g. 평균 구매율)
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['gender_encoded'] = le.fit_transform(df['gender'])
2.3 날짜/시간형 변수 처리
기법목적
연/월/일/요일/시 추출 | 시간 패턴 해석 가능 |
날짜 간 차이 계산 | 경과시간, 주기성 |
계절 변수, 휴일 여부 추가 | 시간 외적 영향 포함 |
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
df['weekday'] = df['date'].dt.weekday
3. 스케일링 기법
모델에 따라 입력 데이터의 크기, 분포, 범위가 학습에 영향을 주기 때문에,
스케일링은 필수 전처리 중 하나입니다.
3.1 주요 스케일링 기법
기법설명특징
MinMaxScaler | 0~1 정규화 | 극단값 민감, NN에 적합 |
StandardScaler | 평균 0, 표준편차 1 | SVM, LR, PCA에서 필수 |
RobustScaler | 중앙값 기준, 이상치 영향 적음 | 분포가 왜곡된 경우 |
QuantileTransformer | 균등 분포/정규 분포로 강제화 | 비선형 모델에 활용 |
from sklearn.preprocessing import MinMaxScaler, StandardScaler
scaler = MinMaxScaler()
df[['income_scaled']] = scaler.fit_transform(df[['income']])
3.2 적용 대상 모델 예시
모델 유형스케일링 필요 여부추천 기법
선형회귀, 로지스틱 | 매우 중요 | StandardScaler |
KNN, SVM | 필수 | MinMax 또는 Robust |
트리계열 (DT, RF, XGB) | 불필요 | 생략 가능 |
딥러닝 | 필수 | MinMax, Z-score 정규화 |
4. 파생 변수 생성 전략
4.1 조합 피처
- amount = price × quantity
- age_group = binning(age)
4.2 비율/차이 피처
- click_to_purchase_ratio = click / purchase
- income_gap = expected_income – actual_income
4.3 시간 기반 피처
- 주기성, 반복성
- 연속 사용 시간, 마지막 활동일 등
5. 실전 팁: 피처 엔지니어링 체크리스트
- 모델이 예측하려는 목표에 직접적인 관련이 있는가?
- 기존 컬럼들을 단순 변형하거나 재해석한 것인가?
- 과도하게 파생 피처를 생성해서 과적합 위험은 없는가?
- 모델의 종류에 따라 인코딩/스케일링 방식이 적절한가?
- 생성한 피처가 실제 성능 향상에 기여하는가? → feature importance 확인 필요
결론: 데이터는 ‘다듬는 기술’이 성능을 만든다
피처 엔지니어링은 단순한 전처리가 아니라, 데이터를 통해 의미를 추출하고 재구성하는 고급 작업입니다.
모델이 데이터를 이해할 수 있도록 돕는 것은 사람인 분석가의 역할이며, 이 영역이 곧 경쟁력입니다.
다음 7화에서는 이렇게 변환된 데이터를 가지고
머신러닝 모델링의 첫 단계 – 분류(Classification)의 핵심 구조와 구현을 살펴보겠습니다.
728x90