더북(TheBook)

표 4-1은 0에서 5까지 숫자로 이루어진 간단한 예시 데이터셋에 표준화와 정규화 두 개의 특성 스케일 변환 기법을 적용한 결과를 보여 줍니다.

▼ 표 4-1 표준화와 최소-최대 정규화 비교

입력

표준화

최소-최대 정규화

0.0

-1.46385

0.0

1.0

- 0.87831

0.2

2.0

- 0.29277

0.4

3.0

0.29277

0.6

4.0

0.87831

0.8

5.0

1.46385

1.0

표 4-1의 표준화와 정규화는 다음 코드로 만들 수 있습니다.

>>> ex = np.array([0, 1, 2, 3, 4, 5])
>>> print('표준화:', (ex - ex.mean()) / ex.std())
표준화: [-1.46385011 -0.87831007 -0.29277002 0.29277002 0.87831007 1.46385011]
>>> print('정규화:', (ex - ex.min()) / (ex.max() - ex.min()))
정규화: [ 0. 0.2 0.4 0.6 0.8 1. ]

MinMaxScaler 클래스와 비슷하게 사이킷런은 표준화를 위한 클래스도 제공합니다.

>>> from sklearn.preprocessing import StandardScaler
>>> stdsc = StandardScaler()
>>> X_train_std = stdsc.fit_transform(X_train)
>>> X_test_std = stdsc.transform(X_test)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.