← 문제 목록/Min-Max 스케일링

Min-Max 스케일링

데이터 전처리 · easy

preview

Min-Max 스케일링

각 특성을 [0, 1] 구간으로 선형 변환하는 대표적 스케일러. Z-score와 달리 한정된 범위를 보장합니다 — 이미지 픽셀, 확률 기반 입력 등에서 유용.

Xij=XijminjmaxjminjX'_{ij} = \frac{X_{ij} - \min_j}{\max_j - \min_j}

여기서 minj,maxj\min_j, \max_jjj번째 컬럼의 최소·최대.

주의

  • max == min 인 컬럼(상수)은 0으로 나눔 발생 → 해당 컬럼을 0으로 두는 방어가 표준.
  • 이상치에 민감: 하나의 극단값이 전체 스케일을 망가뜨림.

과제

함수 min_max(X) 를 완성하세요.

  • 입력: (N, D) 2D 배열.
  • 반환: (X_scaled, mins, maxs) — 스케일된 배열, 컬럼별 min, 컬럼별 max.
  • X.min(axis=0), X.max(axis=0) + 브로드캐스팅.
  • 상수 컬럼 방어 (0으로 나누기 회피, 값을 0으로).

테스트 케이스

#이름검증
1각 컬럼 min == 0X_scaled.min(axis=0) ≈ 0
2각 컬럼 max == 1X_scaled.max(axis=0) ≈ 1
3shape 유지입력과 동일 shape
4통계 반환mins, maxs shape (D,)
5상수 컬럼 방어모든 값 같은 컬럼에서 0/0 안 발생
Loading...

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