다음은 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

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