본문 바로가기
빅데이터 분석

빅데이터 분석기사 실기 기출문제 -파이썬 연습(2) - 정규화와 표준화 (sklearn preprocessing MinMaxScaler / StandardScaler)

by Salon de arte 2024. 6. 25.
728x90
반응형

오늘은 빅데이터 분석기사 실기 단골 기출문제 

 

정규화와 표준화! 

 

1. 정규화와 표준화의 차이

 

정규화 MinMaxScaler() = 컬럼들을 0 ~ 1 사이의 값으로 스케일링 하는 것으로 최소값이 0, 최대값이 1으로 정규화 하는 것 , 회귀 분석에 쓰임 

 

표준화 StandardScaler() = 표준화 방식으로 컬럼들을 평균이 0, 분산이 1인 정규분포로 스케일링하는것 , 분류 분석에 쓰임 

 

2. 정규화 하기 

일단 빅데이터 분석기사 실기 8회에서는 두가지의 컬럼을 MinMax Scaling 하고, 그것들의 표준편차의 차를 구하는 문제가 출제되었다. (나는 ... 풀다가 시간이 없어 결국 끝내지못함....ㅎㅎ... )

 

이전의 데이터 셋을 대충 이용해보자. 

일단 파이썬 정규화를 할때는 두 컬럼 이상을 이용해 스케일링을 한다. 

 

사이킷런에서 preprocessing 에 있는 MinMaxScaler 를 이용한다. 

 

From Sklearn.preprocessing import MinMaxScaler 
Mn = MinMaxScaler()
Mn.fit(데이터프레임)
sc= Mn.transform(데이터프레임)
print(sc)

 

같은 코드를 사용해 wine_serving 과 total_litres_of_pure_alcohol 을 정규화 해보면 아래의 코드로 만들 수있다.

참고로 fit () 과 transform 은 

mn.fit_transform(데이터프레임)으로 사용해도 된다. 

 

이렇게 MinMaxScaler를 사용하면 array 형식으로 나오기 때문에 ! 만약에 무언가를 dataframe으로 한다면 형식을 바꿔줘야한다. 

df =pd.DataFrame(wine_sc, columns =['wine', 'total_liters' ] )

여기에서 빅데이터 분석기사 실기 기출은 컬럼의 표준편차를 구하고 그것들의 차를 구하는 문제였다 (지금생각하니 너무 쉽운데,,, 왜..난 ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ..?)

앞서 공부했던 집계함수 .std() 를 이용하면 아주 편하게 표준편차를 구할 수있다. 

result =wine_df['wine'].std() -wine_df['total_liters'].std() 

print(round(result),3)

 

너무 쉽게 나와버리쥬? 

(마음속으로 계속 드는 생각은 이 쉬운걸 왜 .... 먼저 풀지 않고 ...하하아..ㅎㅎㅎㅎ 마음이 쓰리다)

 

2. 표준화 StandardScaler 

표준화는 정규화와 매우 비슷하고, 작년 빅데이터 분석기사 실기 7회에서는 표준화 문제가 나왔다.

ㅎㅎㅎ 9회에서는 다시 표준화가 나올 차례인가..?

from sklearn.preprocessing import StandardScaler

sc= StandardScaler()

Standard = sc.fit_transform(데이터프레임)

 

이것은 분류분석에 적합한 방법이기때문에 분류 분석에 맞는 데이터가 나올 것이다 

 

=================일단 여기까지 ==========================

728x90
반응형

댓글