
v1 표준화 는 한 배열 에만 적용. 실전에선:
이게 data leakage 방지 의 핵심. train + test 합친 전체에서 평균·분산을 계산하면 test 정보가 train 에 새어 들어감 (특히 cross-validation 에서).
sigma = 1.0 로 덮어써서 해당 열은 중심화만 → 결과 = 0.함수 standardize_fit_transform(X_train, X_test) 를 완성하세요.
(X_train_std, X_test_std, mu, sigma).mu = X_train.mean(axis=0)
sigma = X_train.std(axis=0)
sigma = np.where(sigma > 0, sigma, 1.0) # 영분산 방어
return (X_train - mu) / sigma, (X_test - mu) / sigma, mu, sigma
| # | 이름 | 검증 |
|---|---|---|
| 1 | 반환 4-tuple | |
| 2 | X_train 평균 ≈ 0, std ≈ 1 | |
| 3 | X_test 는 X_train 통계로 변환 (test 자체 통계 ≠ 0/1) | |
| 4 | 같은 stat 으로 apply → X_test+X_train 합쳐서 재계산과 다름 | 누수 방지 |
| 5 | 영분산 열 → 0 (NaN 없음) | |
| 6 | X_test=X_train 이면 결과 동일 |
코드를 작성하고 Run 을 눌러보세요.