스케일링: 강건한 변환
ㅁ 강건한 변환
ㅇ 정의:
– 데이터의 이상치(Outlier)에 영향을 최소화하여 스케일을 조정하는 기법들의 집합.
– 중앙값(Median)과 IQR(Interquartile Range) 등을 사용하여 척도를 맞춤.
ㅇ 특징:
– 평균과 표준편차 대신 중앙값과 사분위 범위를 사용.
– 이상치가 많은 데이터셋에서도 안정적인 변환 결과 제공.
ㅇ 적합한 경우:
– 극단값이 존재하는 연속형 변수 처리.
– 금융 데이터, 센서 데이터 등에서 이상치 영향 제거 필요 시.
ㅇ 시험 함정:
– Robust Scaling은 이상치 제거가 아니라 영향 최소화.
– 모든 변수에 무조건 적용하는 것은 아님.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “중앙값과 IQR을 사용하여 이상치 영향을 줄이는 스케일링 기법은 Robust Scaling이다.”
X: “Robust Scaling은 이상치를 제거한다.”
================================
1. Robust Scaling
ㅇ 정의:
– 각 특성에서 중앙값을 빼고 IQR(75% 분위수 – 25% 분위수)로 나누어 스케일을 조정하는 기법.
ㅇ 특징:
– 이상치에 강건(Robust)하여 극단값의 영향을 크게 받지 않음.
– 데이터의 분포 형태를 크게 왜곡하지 않음.
ㅇ 적합한 경우:
– 데이터에 이상치가 존재하고 이를 제거하기 어려운 경우.
– 회귀, 분류 모델의 입력값 스케일링.
ㅇ 시험 함정:
– 평균과 표준편차를 사용하지 않음.
– Min-Max Scaling과 혼동하기 쉬움.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “IQR을 사용하여 스케일링하는 방법은 Robust Scaling이다.”
X: “Robust Scaling은 최대값과 최소값을 이용한다.”
================================
2. Z-score(Standardization)
ㅇ 정의:
– 각 데이터에서 평균을 빼고 표준편차로 나누어 평균 0, 표준편차 1로 변환하는 기법.
ㅇ 특징:
– 데이터가 정규분포에 가까울수록 효과적.
– 이상치에 민감하여 극단값이 있으면 평균과 표준편차가 왜곡될 수 있음.
ㅇ 적합한 경우:
– 데이터가 정규분포를 가정하는 알고리즘(로지스틱 회귀, SVM, PCA 등).
– 변수 단위가 서로 다른 경우.
ㅇ 시험 함정:
– Robust Scaling과 달리 이상치에 민감.
– 평균과 표준편차를 계산할 때 학습 데이터만 사용해야 함.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “평균 0, 표준편차 1로 변환하는 기법은 Z-score 표준화이다.”
X: “Z-score 표준화는 중앙값과 IQR을 사용한다.”
================================
3. Min-Max Scaling
ㅇ 정의:
– 데이터의 최소값을 0, 최대값을 1로 변환하는 선형 스케일링 기법.
ㅇ 특징:
– 모든 값이 0~1 범위로 변환됨.
– 이상치에 매우 민감하여 최대/최소값이 왜곡되면 전체 스케일이 변함.
ㅇ 적합한 경우:
– 신경망, 거리 기반 알고리즘(KNN, K-means) 등에서 입력값 범위 통일이 필요한 경우.
– 값의 상대적 크기 유지가 중요한 경우.
ㅇ 시험 함정:
– 이상치가 있는 경우 성능 저하 가능.
– 학습 데이터와 테스트 데이터의 스케일 기준이 동일해야 함.
ㅇ 시험 대비 “패턴 보기” 예시:
O: “데이터를 0과 1 사이로 변환하는 기법은 Min-Max Scaling이다.”
X: “Min-Max Scaling은 표준편차를 사용한다.”
ㅁ 추가 학습 내용
추가 학습 정리
1. Robust Scaling, Z-score, Min-Max Scaling의 수식과 예제 계산 과정
– Z-score(Standardization): z = (x – μ) / σ
평균 μ, 표준편차 σ를 사용하여 데이터의 평균을 0, 표준편차를 1로 맞춤
예: x = 10, μ = 8, σ = 2 → z = (10 – 8) / 2 = 1
– Min-Max Scaling: x’ = (x – min) / (max – min)
데이터 범위를 0~1 또는 지정한 범위로 변환
예: x = 7, min = 5, max = 15 → x’ = (7 – 5) / (15 – 5) = 0.2
– Robust Scaling: x’ = (x – median) / IQR
중앙값(median)과 사분위 범위(IQR = Q3 – Q1)를 사용하여 이상치 영향 최소화
예: x = 20, median = 10, Q1 = 5, Q3 = 15 → IQR = 10, x’ = (20 – 10) / 10 = 1
2. 각 스케일링 기법과 주로 사용되는 알고리즘 매칭
– Z-score(StandardScaler): SVM, 로지스틱 회귀, PCA 등 거리 및 분산 기반 알고리즘
– Min-Max Scaling(MinMaxScaler): KNN, 신경망 등 거리 기반 및 입력 범위 민감한 알고리즘
– Robust Scaling(RobustScaler): 이상치가 많은 데이터셋에서 회귀, 분류 등 전반적으로 활용
3. 학습 데이터와 테스트 데이터에 동일한 스케일링 파라미터를 적용해야 하는 이유와 방법
– 이유: 모델은 학습 데이터의 통계값(평균, 표준편차, min, max 등)에 맞춰 학습됨
테스트 데이터에 다른 파라미터를 적용하면 입력 분포가 달라져 예측 성능 저하
– 방법: 학습 데이터로 fit()하여 파라미터 계산 → 학습 데이터와 테스트 데이터 모두에 transform() 적용
4. Scikit-learn 사용법과 주요 파라미터
– StandardScaler: 평균 0, 표준편차 1로 변환
사용: from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
– MinMaxScaler: feature_range=(min, max)로 범위 지정 가능
사용: from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
– RobustScaler: 중앙값과 IQR 사용
사용: from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
5. 스케일링 전후 데이터 분포 시각화 비교
– 히스토그램, 박스플롯, 산점도 등을 사용하여 스케일링 전후 데이터의 분포와 이상치 변화 확인
6. 이상치 존재 여부에 따른 스케일링 기법 선택 전략
– 이상치가 거의 없고 범위 조정이 필요한 경우: Min-Max Scaling
– 이상치가 거의 없고 정규분포 가정이 필요한 경우: Z-score
– 이상치가 많은 경우: Robust Scaling