본문 바로가기

빅데이터분석기사_실기/제1유형: 데이터 전처리

데이터 변환: Min-Max 정규화

  • 데이터의 범위가 같아지도록 변수별로 값을 비례적으로 조정하는 과정은 데이터 스케일링(Scaling)
  • 데이터 스케일링의 대표적인 기법으로 표준정규화(표준화), Min-Max 정규화가 있다.
  • 변수들의 측정단위나 값 범위가 다를 때 적용

Min-Max 정규화

  • Min-Max 정규화는 연속형 변수의 값을 0과 1사이의 값으로 변환
  • Scale이 다른 변수를 Min-Max 변환하면 상호간에 비교가 가능
  • 사이킷런 패키지의 MinMaxScaler(), minmax_scale() 함수를 이용하는 방법
  • 넘파이 패키지의 통계함수를 이용하여 (x - np.min(x)) / (np.max(x) - np.min(x)) 식을 직접 입력하는 방법

방법1: 사이킷런 패키지의 MinMaxScaler() 함수 사용

실습데이터 meat_consumption.head()

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
meat_consumption["한국인_mm"] = scaler.fit_transform(meat_consumption[["한국인"]])

scaler = MinMaxScaler()
meat_consumption["일본인_mm"] = scaler.fit_transform(meat_consumption[["일본인"]])

meat_consumption.head()


방법2: 넘파이 패키지의 통계함수 이용하여 직접계산 (x - np.min(x)) / (np.max(x) - np.min(x))

Min = np.min(meat_consumption["한국인"])
Max = np.max(meat_consumption["한국인"])
meat_consumption["한국인_직접mm"] = (meat_consumption["한국인"] - Min) / (Max - Min)

Min = np.min(meat_consumption["일본인"])
Max = np.max(meat_consumption["일본인"])
meat_consumption["일본인_직접mm"] = (meat_consumption["일본인"] - Min) / (Max - Min)

meat_consumption.head()

값이 같음을 확인할 수 있당.