05wk-20: StandardScaler를 이용한 전처리

Author

최규빈

Published

October 5, 2023

1. 강의영상

2. Imports

import numpy as np
import pandas as pd
import sklearn.preprocessing 

3. StandardScaler()

- 예제자료 로드

df = pd.read_csv('https://raw.githubusercontent.com/guebin/MP2023/main/posts/employment.csv').loc[:7,['toeic','gpa']]
df
toeic gpa
0 135 0.051535
1 935 0.355496
2 485 2.228435
3 65 1.179701
4 445 3.962356
5 65 1.846885
6 290 0.309928
7 730 0.336081

- 스케일러를 생성

sclr = sklearn.preprocessing.StandardScaler()
sclr.fit_transform(df)
array([[-0.8680409 , -0.98104887],
       [ 1.81575704, -0.73905505],
       [ 0.3061207 ,  0.75205327],
       [-1.10287322, -0.08287854],
       [ 0.17193081,  2.13248542],
       [-1.10287322,  0.44828929],
       [-0.34805505, -0.77533368],
       [ 1.12803382, -0.75451182]])

- 계산식

(df.toeic - df.toeic.mean())/df.toeic.std(ddof=0) # 계산식
0   -0.868041
1    1.815757
2    0.306121
3   -1.102873
4    0.171931
5   -1.102873
6   -0.348055
7    1.128034
Name: toeic, dtype: float64

4. 비교

- MinMaxScalerStandardScaler는 데이터의 스케일을 조정하는 두 가지 일반적인 방법이다.

  1. MinMaxScaler:

    • 작동 원리: 데이터를 0과 1 사이의 값으로 조정
    • 장점: 원하는 범위 내로 데이터를 조정할 때 유용. 특히 신경망에서는 활성화 함수의 범위와 일치하도록 입력 값을 조정하는 데 유용.1
    • 단점: 이상치에 매우 민감하다. 이상치 때문에 전체 데이터의 스케일이 크게 영향받을 수 있음.
  2. StandardScaler:

    • 작동 원리: 데이터의 평균을 0, 표준편차를 1로 만드는 방식으로 조정.
    • 장점: 이상치에 MinMaxScaler보다 덜 민감함. 많은 통계적 기법들, 특히 PCA 같은 선형 알고리즘에서 잘 작동함.2
    • 단점: MinMaxScaler와 달리, 표준화된 데이터의 값이 특정 범위 내에 있음을 보장하지 않음.3
  • 1 sigmoid, tanh와 같은 활성화 함수의 출력값과 맞추는 용도

  • 2 그야 PCA는 정규분포를 가정하고 만든 알고리즘이라~

  • 3 MinMaxScaler도 딱히 엄격하게 보장하는건 아니야

  • - 무식한 설명 (1)

    • MinMaxScaler: 컴퓨터공학과, 전자공학과 느낌
    • StandardScaler: 통계학과 느낌

    - 무식한 설명 (2)

    • MinMaxScaler: 데이터가 기본적으로 0$\(1 혹은 -1\)$1 사이의 범위에 있다고 가정한다.
    • StandardScaler: 데이터가 기본적으로 정규분포를 따른다고 가정하는 모형들과 잘 맞는다.

    - 둘 중 어느 것을 선택할지 결정하기 위한 고려사항:

    • 이상치가 많으면 StandardScaler가 더 적합할 수 있다.
    • 모델의 알고리즘과 특성에 따라 선택해야 한다. 예를 들어, 신경망은 일반적으로 0과 1 사이의 값이나 -1과 1 사이의 값으로 입력을 받는 활성화 함수를 사용하므로 MinMaxScaler가 적합할 수 있다.

    결론적으로, 두 스케일링 방법 중 어느 것이 더 좋은지는 사용 사례와 데이터의 특성에 따라 다르기 때문에, 가능한 경우 둘 다 시도해보고 모델의 성능을 비교하는 것이 좋다.

    - 둘 중 어느 것을 선택할지 결정하기 위한 고려사항 – 무식한 설명

    • 보통은 아무거나 해도 큰일 안남.
    • 아주 특수한 경우4를 제외하고는 어차피 이론적인 선택기준은 없음.
  • 4 Classical PCA