데이터 전처리 및 스케일링 방법
카테고리
데이터 과학/AI
서브카테고리
데이터 분석
대상자
- 데이터 과학자, 머신러닝 엔지니어
- 중간 난이도: 스케일링 기법의 원리와 알고리즘별 적용 방법 이해 필요
핵심 요약
- 스케일링은 SVM, 신경망 등에 민감한 알고리즘의 성능 향상에 필수적
- StandardScaler: 평균 0, 분산 1로 조정 (예:
StandardScaler().fit_transform(data)
) - RobustScaler: 중앙값과 사분위수로 이상치 영향 최소화
- MinMaxScaler: 0~1 범위로 조정, 정규화는 유럽clidean 길이 1로 변환
섹션별 세부 요약
1. 스케일링의 필요성
- 신경망, SVM, PCA 등은 데이터 범위에 민감
- 특성 간 스케일 차이로 인해 중요도 판단 오류 발생 (예: 키 150~190cm vs 체중 40~90kg)
- 이상치(예: 측정 오류)로 인한 모델 불안정 방지 필요
2. StandardScaler 동작 원리
- 평균 0으로 중심화:
데이터 - 평균
- 분산 1로 스케일링:
중심화된 데이터 / 표준편차
- 예시: 키 평균 170cm → 180cm → 10 → 표준편차 10 → 1
3. RobustScaler의 특징
- 중앙값과 사분위수 사용: 이상치에 강건
- 표준편차 대신 IQR(사분위수 범위)으로 스케일링
- 측정 오류, 극단적 값 무시
4. MinMaxScaler 및 정규화
- MinMaxScaler: 0~1 범위로 조정 (예:
(X - X.min()) / (X.max() - X.min())
) - 정규화: 유럽clidean 길이 1로 변환 (
X / np.linalg.norm(X, axis=1)
) - 방향만 중요한 경우 (예: 텍스트 임베딩)에 유리
결론
- 알고리즘 특성에 맞는 스케일러 선택: 신경망 → StandardScaler, 이상치 많음 → RobustScaler
- scikit-learn 라이브러리 활용:
from sklearn.preprocessing import StandardScaler, RobustScaler
- 데이터 분포 분석 후 적용: 스케일링 전 결측치 처리 및 이상치 탐지 필수