더북(TheBook)

이외에도 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)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.