Machine Learning

[sklearn] 데이터 표준화, 정규화 - StandardScaler , MinMaxScaler

yugyeong 2022. 11. 30. 17:46

 

데이터 노멀라이징을 하는 이유는 각각의 레인지를 통일하여, 해석하기 쉽게 하기 위함이다.

 

  • 표준화 : 평균을 기준으로 얼마나 떨어져 있느냐? 같은 기준으로 만드는 방법, 음수도 존재, 데이터의 최대최소값 모를때 사용.
  • 정규화 : 0 ~ 1 사이로 맞추는 것. 데이터의 위치 비교가 가능, 데이터의 최대최소값 일 때 사용

 

 

먼저 from sklearn import preprocessing 을 임포트 해준다.

 

 

여기서는 StandardScaler 와 MinMaxScaler 를 이용할 것이기 때문에,

from sklearn.preprocessing import StandardScaler, MinMaxScaler 도 임포트 해주었다.

 

 

 

StandardScaler - 표준화 방법

 

StandardScaler 는 표준화 방법이다
모든 데이터를 평균이 0이고 분산이 1인 정규 분포로 만드는 것이다.

 

StandardScaler() 를 먼저 메모리에 올려주기 위해서 s_scaler 라는 변수에  StandardScaler() 함수를 저장해주었다.

그 후 fit_transform() 를 이용하여 괄호안에 표준화 하고자 하는 데이터컬럼을 넣어준다.

 

아래의 예시에서는 crime_anal 이라는 데이터프레임의 컬럼 다섯개를 가져와서 표준화 작업을 하였다.

 

 

 

MinMaxScaler() - 정규화 방법

 

 

MinMaxScaler() 는 데이터를 정규화 하는 방법이다.

최소-최대 정규화로 데이터를 정규화하는 가장 일반적인 방법이다.

모든 데이터에 대해 각각의 최소값 0, 최대값 1로 그리고 다른 값들은 0과 1 사이의 값으로 변환을 하는 것이다.

 

 

MinMaxScaler() 를 메모리에 불러와야하기 때문에 변수 m_scaler 에 저장을 하였다.

fit_transform() 함수를 이용하여 crime_anal 이라는 데이터프레임의 다섯개 컬럼을 정규화 한 결과 값이다.

 

결과값을 보면 데이터의 최댓값을 1로 변형 되었고, 최솟값은 0, 나머지 데이터들은 1과 0 사이의 수를 갖게 된 것을 볼 수 있다.