머신러닝 공부 시작한 지 한 달쯤 된 초보입니다. 전처리 단계에서 스케일링을 해줘야 한다고 해서 이것저것 찾아봤는데 정규화(normalization)랑 표준화(standardization)라는 게 나오더라고요. 근데 둘이 뭐가 다른 건지 계속 헷갈려요.
제가 이해한 걸로는 정규화는 값을 0에서 1 사이로 쫙 눌러주는 거고, 표준화는 평균 0 분산 1로 맞춰주는 거라고 하는데 맞나요? 코드로는 대충 이렇게 쓰고 있긴 해요.
from sklearn.preprocessing import MinMaxScaler, StandardScaler
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
문제는 언제 MinMaxScaler를 쓰고 언제 StandardScaler를 써야 하는지 감이 안 온다는 거예요. 그냥 아무거나 써도 결과가 비슷하게 나오면 상관없는 건가 싶다가도, 분명 상황마다 맞는 게 따로 있을 것 같은데 말이죠.
혹시 데이터 분포를 보고 결정하는 건가요? 아니면 쓰려는 모델 종류에 따라 갈리는 건가요? KNN이나 회귀 쓸 때랑 트리 계열 쓸 때가 다르다는 얘기도 얼핏 본 것 같은데 정리가 안 돼서요. 실무에서 보통 어떤 기준으로 고르시는지 좀 알려주시면 감사하겠습니다.