데이터 불균형 해결! 정규화 vs 표준화, 스케일링 핵심 비교 (feat. 민맥스)
게시일:
작성자: 자청의 유튜브 추출기
데이터 스케일링, 왜 필요하고 어떻게 할까?
데이터를 다룰 때, 숫자들의 크기가 제각각이면 모델이 제대로 학습하기 어려울 수 있어. 마치 키가 150cm인 친구랑 200cm인 친구가 같이 달리기를 하는데, 키 차이 때문에 200cm 친구가 더 빨리 달릴 거라고 착각하는 것처럼 말이야. 그래서 데이터의 단위를 맞춰주는 스케일링이 필요해.
스케일링, 왜 해야 할까?
- 단위 차이 때문에 특정 데이터만 너무 영향력 있게 되는 걸 막아줘. 예를 들어, 나이는 20~60인데 소득은 3만~8만이면 소득이 훨씬 커 보이니까 모델이 소득에 더 집중하게 될 수 있잖아.
- 모델 학습을 더 안정적으로 만들어줘. 데이터 크기를 비슷하게 맞춰주면 모델이 더 골고루 학습할 수 있어.
스케일링, 두 가지 방법 알아보기
스케일링에는 여러 방법이 있지만, 오늘은 정규화와 표준화 두 가지를 집중적으로 볼 거야.
1. 정규화 (Min-Max Scaling)
- 어떻게? 모든 데이터를 0에서 1 사이의 값으로 바꿔줘. 가장 작은 값은 0, 가장 큰 값은 1이 되는 거지.
- 언제 쓸까? 딥러닝처럼 입력값의 크기가 아주 중요할 때 유용해.
- 어떻게 쓰지?
MinMaxScaler를 사용해서fit_transform해주면 끝!
# 예시 데이터 (나이, 소득, 지출)
# 정규화 후에는 모든 값이 0과 1 사이로 바뀐 것을 볼 수 있어.
2. 표준화 (Standard Scaling)
- 어떻게? 데이터의 평균을 0, 표준편차를 1로 맞춰줘. 쉽게 말해, 데이터가 평균에서 얼마나 떨어져 있는지를 기준으로 바꿔주는 거야.
- 언제 쓸까? 대부분의 머신러닝 알고리즘에 잘 맞아.
- 어떻게 쓰지?
StandardScaler를 사용해서fit_transform해주면 돼.
# 예시 데이터
# 표준화 후에는 데이터들이 평균 0을 중심으로 퍼져있는 것을 볼 수 있어.
정규화 vs 표준화, 뭐가 다를까?
| 구분 | 정규화 (Min-Max Scaling) | 표준화 (Standard Scaling) |
| :------- | :----------------------- | :------------------------ |
| 변환 방식 | 0 ~ 1 사이로 변환 | 평균 0, 표준편차 1로 변환 |
| 특징 | 이상치에 민감함 | 대부분 알고리즘에 적용 가능 |
| 주로 사용 | 딥러닝 | 일반적인 머신러닝 알고리즘 |
실제 데이터로 연습해보기 (타이타닉 데이터)
타이타닉 데이터에서 나이와 요금만 가져와서 표준화를 해보면, 데이터의 분포가 비슷한 스케일로 맞춰지는 걸 확인할 수 있어.
# 타이타닉 데이터에서 나이, 요금만 가져와서 결측치 제거 후 표준화
# 시각화해보면 데이터 분포가 비슷하게 맞춰진 것을 볼 수 있어.
마무리
- 정규화는
MinMaxScaler로, 표준화는StandardScaler로 하면 돼. - 어떤 스케일링 방법을 쓸지는 문제에서 알려주거나, 데이터 특성에 맞게 선택해야 해.
- 스케일링은 모델 성능을 높이고 안정성을 확보하는 데 정말 중요해!
- 스케일링 후에는 꼭 시각화를 해서 데이터 분포가 잘 맞춰졌는지 확인하는 습관을 들이자!