Python

[Python] Min-Max 정규화

Any Developer 2023. 5. 9. 16:18

1. 목표

 - 데이터의 Min-Max 정규화를 여러가지 방법에 의해 실행해 본다.

 

2. 도구

 - Google Colaboratory

 

3. 사전 정보 확인

[Python] Z-Score 표준화 (tistory.com)

 

[Python] Z-Score 표준화

1. 목표 - Z-Score 표준화를 통해 표준정규분포를 나타낼 수 있다. 2. 도구 - Google Colaboratory [Python] 데이터 프레임 CSV 파일로 저장하기 (tistory.com) [Python] 데이터 프레임 CSV 파일로 저장하기 1. 목표 -

iotcyuty.tistory.com

 - Z-Score 표준화에 이어 Mn-Max 정규화에 대해 다뤄볼 예정이다.

 - 데이터셋은 위 포스팅에 저장된 CSV 파일로 해보도록 한다.

 

4. 코드 작성

'''
Min-Max 정규화 구하기
'''

import numpy as np  # 넘파이 임포트
import matplotlib.pyplot as plt  # 맷플롯립.파이플롯 임포트
import pandas as pd  # 판다스 임포트
from google.colab import drive


df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Sample_normaldistribution.csv')  # 정규분포 저장 데이터 불러옴

#### 공식에 의해 Min-Max 정규화 구함 ####

min_a = np.min(df["A"])
max_a = np.max(df["A"])

df["Min_Max_CALC_A"] = (df["A"]-min_a) / (max_a - min_a)

#### 결과 출력 ####
plt.hist(df["Min_Max_CALC_A"])
plt.show()

print("Min-Max 정규화를 거친 데이터의 최소값은 ", np.min(df["Min_Max_CALC_A"]), "이다.")
print("Min-Max 정규화를 거친 데이터의 최대값은 ", np.max(df["Min_Max_CALC_A"]), "이다.")

 

4.1. 코드 작성 (sklearn 이용)

'''
Min-Max 정규화 구하기
sklearn
'''

import numpy as np  # 넘파이 임포트
import matplotlib.pyplot as plt  # 맷플롯립.파이플롯 임포트
import pandas as pd  # 판다스 임포트
from google.colab import drive
from sklearn.preprocessing import MinMaxScaler


df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Sample_normaldistribution.csv')  # 정규분포 저장 데이터 불러옴

#### sklearn.preprocessing MinMaxScaler 를 이용해서 Min-Max 정규화 구함 ####

scaler = MinMaxScaler()  # 인스턴스 생성
df["Min_Max_SK_A"] = scaler.fit_transform(df[["A"]])  # Min-Max 정규화 실행


#### 결과 출력 ####
plt.hist(df["Min_Max_SK_A"])
plt.show()

print("Min-Max 정규화를 거친 데이터의 최소값은 ", np.min(df["Min_Max_SK_A"]), "이다.")
print("Min-Max 정규화를 거친 데이터의 최대값은 ", np.max(df["Min_Max_SK_A"]), "이다.")