← 문제 목록/Multivariate Polynomial Features [medium]
문제 해설

Multivariate Polynomial Features [medium]

특성 공학 · medium

preview

Multivariate Polynomial Features [medium]

v1 단변량 다항 은 1D. 실무에서는 여러 특성 간 상호작용 까지 포함한 다항 확장이 중요. 예: D=2D=2, degree=2:

[1,x1,x2,x12,x1x2,x22][1, x_1, x_2, x_1^2, x_1 x_2, x_2^2]

상호작용 항 (x1x2x_1 x_2) 이 "서로 다른 특성의 곱" 을 표현 → 선형 모델이 비선형 상호작용 학습.

차수 공식

DD 개 특성에 총 차수 d\le d 의 multi-index (α1,,αD)(\alpha_1, \ldots, \alpha_D) 개수:

(D+dd)\binom{D + d}{d}

각 feature 는 jxjαj\prod_j x_j^{\alpha_j}.

  • D=2,d=2(42)=6D=2, d=2 \to \binom{4}{2} = 6
  • D=3,d=2(52)=10D=3, d=2 \to \binom{5}{2} = 10
  • D=10,d=3286D=10, d=3 \to 286 — 차원 폭발 조심

순서 규칙 (sklearn 호환)

Multi-index 들을 총 차수 오름차순, 같은 총 차수면 사전식(lex) 정렬. Bias 제외 시 총 차수 1 부터 시작.

  • D=2,d=2,biasD=2, d=2, \text{bias} 포함: [(0,0), (1,0), (0,1), (2,0), (1,1), (0,2)]

과제

함수 polynomial_features_multi(X, degree, include_bias=True) 를 완성하세요.

  • X shape (N, D).
  • degree: 정수 ≥ 0.
  • include_bias: True 면 차수 0 (상수 1) 포함.
  • 반환: shape (N, K)K = C(D+d, d) (bias 포함) 또는 C(D+d, d) - 1 (bias 제외).
  • 힌트: itertools.combinations_with_replacement 로 자연스러운 순서 생성.

테스트 케이스

#이름검증
1shape (N, C(D+d, d)) (bias 포함)
2include_bias=FalseK = C(D+d, d) - 1
3D=1 경우 v1 polynomial_features 와 일치
4모든 개별 차수 열 존재 (x1,x2,...,xDx_1, x_2, ..., x_D)
5상호작용 항 포함 (xixjx_i x_j)
6숫자 검증: D=2, d=2, x=[2,3][1,2,3,4,6,9]
7sklearn PolynomialFeatures 와 일치
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.