더북(TheBook)

다음은 StandardScaler()를 구현하는 예시 코드입니다.

from sklearn.preprocessing import StandardScaler
standardScaler = StandardScaler() ------ StandardScaler 객체 생성
standardScaler.fit(train_data)
train_data_standardScaled = standardScaler.transform(train_data)

정규화 방법은 예제에서 구현한 MinMaxScaler(), StandardScaler() 외에도 두 가지가 더 있습니다.

RobustScaler(): 평균과 분산 대신 중간 값(median)과 사분위수 범위(InterQuartile Range, IQR)를 사용합니다. StandardScaler()와 비교하면 그림 9-18과 같이 정규화 이후 동일한 값이 더 넓게 분포되어 있는 것을 확인할 수 있습니다.

 

▲ 그림 9-18 StandardScaler와 RobustScaler 비교

Note ≡ | 사분위수 범위(IQR)

사분위수란 전체 관측 값을 오름차순으로 정렬한 후 전체를 사등분하는 값을 나타냅니다. 따라서 다음과 같이 표현할 수 있습니다.

• 제1사분위수 = Q1 = 제25백분위수

• 제2사분위수 = Q2 = 제50백분위수

• 제3사분위수 = Q3 = 제75백분위수

이때 제3사분위수와 제1사분위수 사이 거리를 데이터가 흩어진 정도의 척도로 사용할 수 있는데, 이 수치를 사분위수 범위(IQR)라고 합니다. 따라서 사분위수 범위는 다음과 같이 표현할 수 있습니다.

사분위수 범위: IQR = 제3사분위수 - 제1사분위수 = Q3 - Q1

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.