AI/ML(패스트 캠퍼스) - 정규화와 표준화

 

정규화와 표준화에 대한 간략한 설명과 예제

정규화(Normalization)와 표준화(Standardization)


전처리 기본 - Normalization(정규화)

  • 컬럼간에 다른 min, max 값을 가지는 경우, 정규화를 통해 최솟값/최댓값의 척도를 맞추어 주는 것
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 네이버와 넷플릭스의 평점 범위가 다름
movie = {
    'naver': [2, 4, 6, 8, 10],
    'netfflix': [1, 2, 3, 4, 5]
}

movie = pd.DataFrame(data=movie)
movie
'''출력
  naver netfflix
0     2        1
1     4        2
2     6        3
3     8        4
4    10        5
'''

min_max_scaler = MinMaxScaler()
min_max_movie = min_max_scaler.fit_transform(movie)
pd.DataFrame(min_max_movie, columns=['naver', 'netfflix'])

'''출력
  naver netfflix
0  0.00     0.00
1  0.25     0.25
2  0.50     0.50
3  0.75     0.75
4  1.00     1.00
'''

전처리 기본 - Standardization(표준화)

  • 평균이 0, 표준편차가 1이 되도록 변환
from sklearn.preprocessing import StandardScaler

standard_scaler = StandardScaler()

# 샘플 데이터 생성
x = np.arange(10)
# outlier 추가
x[9] = 1000

x.mean(), x.std()
'''출력
(103.6, 298.8100399919654)
'''

scaled = standard_scaler.fit_transform(x.reshape(-1, 1))
scaled.mean(), scaled.std()
'''출력
(4.4408920985006264e-17, 1.0)
'''

round(scaled.mean()), scaled.std()
'''출력
(0, 1.0)
'''