인공지능/머신러닝

머신러닝 - feature scaling

해피밀세트 2020. 5. 9. 17:40

 

 

feature scaling

  • 서로 다른 변수의 범위를 일정한 수준으로 맞추는 작업
  • 비교해야할 데이터의 기준이 서로 다른 경우에 같은 기준으로 만들어서  비교한다.
  • 방법 : 표준화(standardization), 정규화(Normalization)
  • 값이 안나오면 두개를 각각 해본다.

 

표준화 (standardization)

  • 데이터의 평균이 0이고 표준편차가 1 정규분포를 가진 값으로 변환한다.
  • (x - 평균) / 표준편차
  • 파이썬 : sklearn.preprocessing.StandardScaler

 

정규화 (Normalization)

  • 서로 다른 피처의 크기를 통일하기 위해 크기를 변환해주는 작업
  • 최소 0 ~ 최대 1 값으로 변환한다.
  • (x - min(x)) / (max(x) - min(x))
  • 파이썬 : sklearn.preprocessing.MinMaxScaler

 


 

파이썬으로 feature scaling 하는 방법 

 

 

1. 공식으로 feature scaling

 

x = [10,2,50,1,4,3]
 표준화   정규화 

s = Series(x)
(s-s.mean())/s.std()

s = Series(x)
(s - s.min()) / (s.max() - s.min())

 

 

 

2. sklearn.preprocessing로 feature scaling

 

x = [10,2,50,1,4,3]
 표준화   정규화 

from sklearn.preprocessing import StandardScaler

x = np.array(x)
std = StandardScaler()

# 1차원 배열에서는 수행할 수 없다.

std.fit_transform(x.reshape(6,1))

std.transform(x.reshape(6,1))

from sklearn.preprocessing import MinMaxScaler

x = np.array(x)
normal = MinMaxScaler()


# 1
차원 배열에서는 수행할 수 없다.

normal.fit_transform(x.reshape(6,1))

normal.transform(x.reshape(6,1))

 

 

 

3. sclae로 feature scaling

 

  • array의 모양을 맞추는 작업을 생략해도 된다.
x = [10,2,50,1,4,3]
 표준화   정규화 

from sklearn.preprocessing import scale

x = np.array(x)

scale(x)

from sklearn.preprocessing import minmax_scale

x = np.array(x)

minmax_scale(x)

 

반응형