데이터전처리

데이터 전처리 기법: 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