데이터전처리
데이터 전처리 기법: Feature Interaction 완전 가이드
8353cc
2025. 4. 16. 03:56
728x90
반응형
SMALL
🧠 Feature Interaction 완전 정복: 변수 간 곱, 합 활용
1. 개념
Feature Interaction은 둘 이상의 변수 간의 곱(multiplicative), 합(additive) 등을 통해 새로운 의미 있는 피처를 생성하는 전처리 기법입니다.
2. 원리
- 기존의 독립적인 변수들이 결합되면 모델이 학습하기 어려운 패턴을 더 잘 표현할 수 있게 됩니다.
- 예:
매출 = 가격 × 수량
3. 사용 방법
df['A_B_mul'] = df['A'] * df['B']
df['A_B_add'] = df['A'] + df['B']
4. 사용 시기
- 모델 성능이 더 이상 개선되지 않을 때
- 변수 간 상호작용이 의미가 있을 때 (도메인 지식 활용)
- 트리 기반 모델 또는 DNN 사용 시
5. 기대 효과
- 모델 성능 향상 (정확도, AUC 등)
- 복잡한 관계 학습 가능
- 해석 가능한 피처 제공 가능
6. 코드 기본 예시
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
df['A_B_mul'] = df['A'] * df['B']
df['A_B_add'] = df['A'] + df['B']
print(df)
7. 실무 적용 예시
df['price'] = [100, 200, 150]
df['quantity'] = [2, 1, 3]
df['total_sales'] = df['price'] * df['quantity']
8. 사용 시 주의사항
- 과도한 피처 수 증가 주의
- 모델 과적합 가능성 존재
- 불필요한 상호작용 생성은 노이즈만 증가시킴
9. 성능 향상 예시
모델 | 기본 AUC | Interaction 적용 후 |
---|---|---|
LightGBM | 0.78 | 0.83 |
CatBoost | 0.81 | 0.86 |
10. PolynomialFeatures 자동 생성
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2, interaction_only=True, include_bias=False)
features = poly.fit_transform(df)
feature_names = poly.get_feature_names_out(df.columns)
11. FeatureUnion & ColumnTransformer
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import PolynomialFeatures, StandardScaler, OneHotEncoder
preprocessor = ColumnTransformer([
('num', Pipeline([
('poly', PolynomialFeatures(degree=2, interaction_only=True)),
('scaler', StandardScaler())
]), ['A', 'B']),
('cat', OneHotEncoder(), ['category'])
])
12. DeepFM 구조 설명
- FM Layer: 2차 피처 상호작용 자동 학습
- Deep Layer: DNN으로 고차 상호작용 학습
- Shared Embedding 사용으로 효율적 구조
embed_x = self.embedding(x)
fm_output = self.fm(embed_x)
deep_output = self.deep(embed_x.view(x.size(0), -1))
return fm_output + deep_output
✅ 마무리 요약
- 곱, 합 기반 Feature Interaction은 간단하지만 강력한 전처리 방법
- 트리 기반, 딥러닝 기반 모델에서 특히 효과적
- PolynomialFeatures, ColumnTransformer, DeepFM 등 다양한 구현 방식 존재
반응형
LIST