이외에도 MaxAbsScaler는 각 특성별로 데이터를 최대 절댓값으로 나눕니다. 따라서 각 특성의 최댓값은 1이 됩니다. 전체 특성은 [-1, 1] 범위로 변경됩니다.

    >>> from sklearn.preprocessing import MaxAbsScaler 
    >>> mas = MaxAbsScaler() 
    >>> X_train_maxabs = mas.fit_transform(X_train)
    >>> X_test_maxabs = mas.fit_transform(X_test)

    넘파이를 사용하여 계산하면 다음과 같습니다.

    >>> ex / np.max(np.abs(ex))
    array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])

    StandardScaler, MinMaxScaler, RobustScaler, MaxAbsScaler에 대응하는 scale(), minmax_scale(), robust_scale(), maxabs_scale() 함수가 있습니다. 이 함수들은 1차원 배열도 입력받을 수 있습니다. ex 배열에 이 함수들을 적용하여 결과를 비교해 봅시다.

    >>> from sklearn.preprocessing import scale, minmax_scale, robust_scale, maxabs_scale 
    >>> print('StandardScaler:', scale(ex)) 
    >>> print('MinMaxScaler:', minmax_scale(ex)) 
    >>> print('RobustScaler:', robust_scale(ex)) 
    >>> print('MaxAbsScaler:', maxabs_scale(ex))
    StandardScaler: [-1.46385011 -0.87831007 -0.29277002 0.29277002 0.87831007 1.46385011] 
    MinMaxScaler: [0. 0.2 0.4 0.6 0.8 1. ] 
    RobustScaler: [-1. -0.6 -0.2 0.2 0.6 1. ] 
    MaxAbsScaler: [0. 0.2 0.4 0.6 0.8 1. ]

    MaxAbsScaler, maxabs_scale()은 데이터를 중앙에 맞추지 않기 때문에 희소 행렬을 사용할 수 있습니다.

    >>> from scipy import sparse 
    >>> X_train_sparse = sparse.csr_matrix(X_train)
    >>> X_train_maxabs = mas.fit_transform(X_train_sparse)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.