본문 바로가기

프로그래밍 언어/Python

[Python] 노멀라이징, Feature Scaling: StandardScaler(), MinMaxScaler()

반응형

노멀라이징: 

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

 

- 학습에 들어갈 데이터는 사람이 만든다. 학습은 컴퓨터가 한다.

 

- 머신 러닝에 제일 많이 쓰이는 것이, 제일 많이 쓰는것이 퍼센테이지, 

- “~률”이 범위를 통일 시켜주는 것, 0에서 100으로 통일

ㄴ 각 건수에 대해서는 범위가 각 다르기 때문에(1~10과 100과 1000) 절대 비교가 불가능하다. 

ㄴ 인공지능도 범위가 통일되어있지 않은 상태에서 학습을 시키면, 학습이 안된다. 

 

- 인공지능에서는 특징이라고 하고, 

- 데이터 분석에서는 컬럼이라고 한다. 

 

 

- 학습을 시킬 때는 퍼센테이지가 좋지만,  이는 사람이 보기 편하기 위함이라, 이를 컴퓨터에 응용하면, 계산을 잘 못한다.

- Feature Scaling 우리가 다 알고 있는 건 퍼센테이지

 

- 머신러닝, 학습시킬 때는 상기 두가지 방법이 상기 이미지와 같이 두가지

표준화: 각 컬럼의 평균과, 컬럼의 표준편차로 계산

정규화: 최소값, 최대값으로 범위를 최대한으로 맞춰주는 방법

 

from sklearn.preprocessing import StandardScaler, MinMaxScaler

 

표준화로 피쳐 스케일링: StandardScaler

- 사용 방법: 

1. 변수를 만들어준다.

2. 이 변수에게 일을 시킨다. 

 

s_scaler = StandardScaler()
X_scaled1 = s_scaler.fit_transform( crime_anal[['강도','강간','살인','절도','폭력']])

ㄴ 각 컬럼들만 바꿨음

ㄴ trnasform: 바꿔달라,

ㄴ fit: 알아서 평균과 표준편차를 구해서 바꿔달라

 

ex) 피쳐 스케일링도, X 따로 ,y 따로 한다

s_scaler = StandardScaler()
s_scaler.fit_transform(X)

 

정규화로 피쳐 스케일링: MinMaxScaler

 

- 사용 방법: 

1. 변수를 만들어준다.

2. 이 변수에게 일을 시킨다. 

 

m_scaler = MinMaxScaler()
X_scaled2 = m_scaler.fit_transform( crime_anal[['강도','강간','살인','절도','폭력']])

ㄴ 최대값과 최소값을 가져와서 바꿔달라

ㄴ 각 컬럼의 최대값, 최소값으로 계산

ㄴ 결과값은 무조건 0과 1사이의 실수

ㄴ StandardScale은 마이너스도 있다. 

 

ex) 

 

m_scaler = MinMaxScaler()
m_scaler.fit_transform(X)

 

 

—---

 

- 한번에 둘 다 사용하면 안된다.

- 둘 중에 하나를 사용하라, 성능은 크게 차이가 없다.

 

반응형