본문 바로가기
Language/파이썬

파이썬 '판다스 데이터 분석' - 정규화 MinMax, Standard

by javapp 자바앱 2021. 7. 23.
728x90

 

변수의 범위가 다르면 상대적으로 큰 숫자 값을 갖는 변수의 영향이 더 커진다.
숫자 데이터의 상대적인 크기 차이를 제거할 필요가 있다.

 

MinMaxScaler 기법
y = x - 최소 / 최대 - 최소

 

min_x = df.horsepower - df.horsepower.min()
min_max = df.horsepower.max() - df.horsepower.min()
df_result = min_x / min_max
df_result

 

<결과>
0      0.456522
1      0.646739
2      0.565217
3      0.565217
4      0.510870
         ...   
393    0.217391
394    0.032609
395    0.206522
396    0.179348
397    0.195652
Name: horsepower, Length: 392, dtype: float64

 

 

sklearn 의 preprocessing 모듈을 사용한 정규화

from sklearn import preprocessing
X = preprocessing.StandardScaler().fit(X).transform(X)

 


 

Standard Scaling

이미지, 음성 ( 비정형 ) 에 주로 (이걸 더 많이 쓴다.)

z-score 라고 하는 데이터를 통계적으로 표준정규분포화 시켜 스케일링을 하는 방식입니다.
데이터의 평균이 0, 표준 편차가 1이 되도록 스케일링 합니다.

 

from sklearn.preprocessing import StandardScaler

sdscaler = StandardScaler()
sdscaler.fit_transform(data)
<결과>
array([[-0.57455813, -0.43214879, -1.06442415, ..., -0.72621157,
        -0.63821689,  1.57154357],
       [-1.44898585, -1.439929  , -1.18397831, ..., -1.20522124,
        -1.21298732, -0.91001299],
       [ 0.05003309,  0.12213032, -0.10799087, ..., -0.35668983,
        -0.20713907, -0.28962385],
       ...,
       [ 0.6329849 ,  0.67640943,  1.56576738, ...,  0.97541324,
         0.49695471, -0.28962385],
       [ 0.84118198,  0.77718745,  0.25067161, ...,  0.73362741,
         0.41073914,  0.02057072],
       [ 1.54905203,  1.48263359,  1.32665906, ...,  1.78744868,
         1.84048058,  0.64095986]])

 

댓글