← 문제 목록/Robust Quantile Scaler (percentile 기반) [medium]
문제 해설

Robust Quantile Scaler (percentile 기반) [medium]

전처리 · medium

preview

Robust Quantile Scaler [medium]

v1 Min-Maxmin/max 기반 → 단 하나의 이상치가 전체 스케일을 망침. Robust scaler분위수(percentile) 기반:

Xij=Xijqlow, jqhigh, jqlow, jX'_{ij} = \frac{X_{ij} - q_\text{low, j}}{q_\text{high, j} - q_\text{low, j}}

  • q_low = np.percentile(X[:, j], p_low) (예: 5-percentile)
  • q_high = np.percentile(X[:, j], p_high) (예: 95-percentile)

값 범위:

  • 대부분의 값이 [0, 1] 에 들어옴.
  • 이상치는 < 0 or > 1 (clip 은 호출측 결정).

언제 쓰나

  • 센서 데이터, 로그 값 등 long-tail 분포.
  • scikit-learn RobustScaler 의 변형.
  • 이상치가 영향을 주면 안 되는 모든 전처리.

과제

함수 robust_scale(X, p_low=5, p_high=95) 를 완성하세요.

  • X shape (N, D).
  • 반환: 같은 shape, 열별로 percentile 기반 스케일.
  • q_high == q_low (모두 같은 값) 인 열 → 해당 열 0 반환 (nan 방지).
  • 힌트: np.percentile(X, p_low, axis=0) 등.

테스트 케이스

#이름검증
1shape 유지
2이상치 없는 데이터 → 대부분 [0, 1]
3이상치 추가해도 스케일 안정v1 vs v3 비교
4상수 열 → 0 (NaN 없음)
5p_low=0, p_high=100 → v1 min-max 와 동일
6q_low 위치 값 → 0, q_high 위치 값 → 1
코드 작성
Loading...
실행 결과

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