Python에서 데이터를 표준화하는 방법: 예제 포함
데이터세트를 표준화한다는 것은 데이터세트의 모든 값을 평균값이 0, 표준편차가 1이 되도록 조정하는 것을 의미합니다.
데이터 세트의 값을 정규화하려면 다음 공식을 사용합니다.
x 새로운 = (x i – x ) / s
금:
- x i : 데이터세트의 i번째 값
- x : 표본의 의미
- s : 표본의 표준편차
다음 구문을 사용하여 Python에서 pandas DataFrame의 모든 열을 빠르게 정규화할 수 있습니다.
(df- df.mean ())/df. std ()
다음 예에서는 이 구문을 실제로 사용하는 방법을 보여줍니다.
예시 1: 모든 DataFrame 열 표준화
다음 코드는 Pandas DataFrame의 모든 열을 표준화하는 방법을 보여줍니다.
import pandas as pd #create data frame df = pd. DataFrame ({' y ': [8, 12, 15, 14, 19, 23, 25, 29], ' x1 ': [5, 7, 7, 9, 12, 9, 9, 4], ' x2 ': [11, 8, 10, 6, 6, 5, 9, 12], ' x3 ': [2, 2, 3, 2, 5, 5, 7, 9]}) #view data frame df y x1 x2 x3 0 8 5 11 2 1 12 7 8 2 2 15 7 10 3 3 14 9 6 2 4 19 12 6 5 5 23 9 5 5 6 25 9 9 7 7 29 4 12 9 #standardize the values in each column df_new = (df- df.mean ())/df. std () #view new data frame df_new y x1 x2 x3 0 -1.418032 -1.078639 1.025393 -0.908151 1 -0.857822 -0.294174 -0.146485 -0.908151 2 -0.437664 -0.294174 0.634767 -0.525772 3 -0.577717 0.490290 -0.927736 -0.908151 4 0.122546 1.666987 -0.927736 0.238987 5 0.682756 0.490290 -1.318362 0.238987 6 0.962861 0.490290 0.244141 1.003746 7 1.523071 -1.470871 1.416019 1.768505
각 열의 평균과 표준편차가 각각 0과 1인 것을 확인할 수 있습니다.
#view mean of each column df_new. mean () y 0.000000e+00 x1 2.775558e-17 x2 -4.163336e-17 x3 5.551115e-17 dtype:float64 #view standard deviation of each column df_new. std () y 1.0 x1 1.0 x2 1.0 x3 1.0 dtype:float64
예시 2: 특정 DataFrame 열 정규화
때로는 DataFrame의 특정 열만 정규화하고 싶을 수도 있습니다.
예를 들어, 많은 기계 학습 알고리즘 의 경우 특정 모델을 데이터에 맞추기 전에 예측 변수만 표준화할 수 있습니다.
다음 코드는 Pandas DataFrame의 특정 열을 표준화하는 방법을 보여줍니다.
import pandas as pd #create data frame df = pd. DataFrame ({' y ': [8, 12, 15, 14, 19, 23, 25, 29], ' x1 ': [5, 7, 7, 9, 12, 9, 9, 4], ' x2 ': [11, 8, 10, 6, 6, 5, 9, 12], ' x3 ': [2, 2, 3, 2, 5, 5, 7, 9]}) #view data frame df y x1 x2 x3 0 8 5 11 2 1 12 7 8 2 2 15 7 10 3 3 14 9 6 2 4 19 12 6 5 5 23 9 5 5 6 25 9 9 7 7 29 4 12 9 #define predictor variable columns df_x = df[[' x1 ', ' x2 ', ' x3 ']] #standardize the values for each predictor variable df[[' x1 ',' x2 ',' x3 ']] = (df_x- df_x.mean ())/df_x. std () #view new data frame df y x1 x2 x3 0 8 -1.078639 1.025393 -0.908151 1 12 -0.294174 -0.146485 -0.908151 2 15 -0.294174 0.634767 -0.525772 3 14 0.490290 -0.927736 -0.908151 4 19 1.666987 -0.927736 0.238987 5 23 0.490290 -1.318362 0.238987 6 25 0.490290 0.244141 1.003746 7 29 -1.470871 1.416019 1.768505
열 “y”는 변경되지 않은 상태로 유지되지만 “x1”, “x2” 및 “x3” 열은 모두 표준화되어 있습니다.
예측 변수의 각 열의 평균과 표준 편차가 각각 0과 1과 같은지 확인할 수 있습니다.
#view mean of each predictor variable column df[[' x1 ', ' x2 ', ' x3 ']]. mean () x1 2.775558e-17 x2 -4.163336e-17 x3 5.551115e-17 dtype:float64 #view standard deviation of each predictor variable column df[[' x1 ', ' x2 ', ' x3 ']]. std () x1 1.0 x2 1.0 x3 1.0 dtype:float64
추가 리소스
Pandas DataFrame의 열을 정규화하는 방법
Python에서 이상값을 제거하는 방법
표준화 또는 정규화: 차이점은 무엇입니까?