표준화(Standardization)와 정규화(Normalization)는 데이터 전처리 과정에서 사용되는 방법으로, 데이터의 스케일을 조정하여 모델의 성능을 향상시키는 데 도움을 준다. 두 기법은 데이터의 단위와 범위를 조정하는 데 목적이 있지만, 방식과 목표가 조금 다르다.
데이터를 로드하고 정제하는 과정은 생략하겠다.
from sklearn.preprocessing import StandardScaler
# StandardScaler 객체 생성
scaler = StandardScaler()
# 데이터 표준화
standardized_data = scaler.fit_transform(data)
수식을 활용하여 표준화할 수도 있지만, 데이터가 많고 복잡한 경우에는 Scikit-learn의 StandardScaler를 사용하여 더 편리하게 데이터를 표준화할 수 있다. 위 코드가 바로 Scikit-learn의 StandardScaler를 사용하여 표준화한 예시이다.
StandardScaler
객체를 생성하고,
fit_transform
메서드를 사용하여 데이터를 표준화할 수 있다.
데이터를 로드하고 정제하는 과정은 생략하겠다.
from sklearn.preprocessing import StandardScaler
# StandardScaler 객체 생성
scaler = StandardScaler()
# 데이터 정규화
normalized_data = scaler.fit_transform(data)
from sklearn.preprocessing import MinMaxScaler
# MinMaxScaler 객체 생성
scaler = MinMaxScaler()
# 데이터 정규화
normalized_data = scaler.fit_transform(data)
from sklearn.preprocessing import RobustScaler
# RobustScaler 객체 생성
scaler = RobustScaler()
# 데이터 정규화
normalized_data = scaler.fit_transform(data)
표준화와 마찬가지로, 수식을 활용하여 정규화할 수도 있지만, 데이터가 많고 복잡한 경우에는 Scikit-learn의 StandardScaler를 사용하여 더 편리하게 데이터를 정규화할 수 있다.
정규화를 하기 위해서 사용되는 객체는 StandardScaler
, MinMaxScaler
, RobustScaler
세 종류가 있다. 각각 차이점이 존재한다. 그 차이점은 이 사이트를 참고하면 좋을 것같다.
StandardScaler
는 표준화에서도 정규화에서도 쓰이는 것으로 보이는데, StandardScaler는 평균 0, 표준편차 1 기준 정규화하는 방법을 사용한다. 이것은 표준화의 개념에 더 가깝다고 생각한다.
정리하자면, 표준화는 평균과 표준 편차에 의존하고, 정규화는 최솟값과 최댓값에 의존한다는 점에서 차이가 있다. 전혀 다른 방법은 아니지만 약간의 차이가 있다. 어떤 방법을 선택할지는 데이터와 상황에 따라 다를 수 있다.