AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

머신러닝/머신러닝: 입문 개념

데이터 표준화(StandardScaler)

qordnswnd123 2024. 12. 4. 17:15

1. 데이터 표준화(StandardScaler)

StandardScaler 수식

 

StandardScaler는 특성의 평균을 0, 분산을 1로 조정하여 모든 특성이 동일한 스케일을 갖도록 변환하는 방법입니다.

데이터들의 크기가 너무 다를 때 발생하는 문제를 해결하기 위해서 사용합니다.

위의 표와 같이 뭄무게와 키에서는 더 큰 숫자를 갖는 특성인 키가 모델에 더 큰 영향을 끼칠 수 있습니다.

데이터 표준화를 적용함으로써 키와 몸무게는 모델 학습에 동등하게 기여할 수 있게되며, 이는 더 공정하고 균형잡힌 학습 결과를 가져다줍니다.


2. 데이터 표준화(StandardScaler)의 장단점

 

2.1 장점

  • 특성 간 스케일 차이를 감소시켜, 모델이 각 특성을 좀 더 균등하게 취급하도록 도와줍니다.
  • 데이터를 정규 분포에 가깝게 만들어, 많은 머신러닝 알고리즘의 기본 가정에 부합하게 해줍니다.
  • 표준화된 특성은 최적화 알고리즘의 수렴을 빠르고 효울적으로 만들어, 모델 학습 과정의 성능을 향상시킵니다.

 

2.2 단점

  • 이상치가 있는 데이터에 적용할 때, 이상치들이 결과를 왜곡시킬 수 있습니다.
  • 데이터를 표준화하는 과정에서 특성의 원본 분포가 변경되어, 특정분석에 필요한 데이터의 구조적 특성이나 본질적인 정보가 감소할 위험이 있습니다.

3. 데이터 표준화(StandardScaler) 적용

 

3.1 데이터 불러오기

train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')

train.head()

 

3.2 데이터 표준화

from sklearn.preprocessing import StandardScaler

numeric_features = ['Exercise_Duration', 'Body_Temperature(F)', 'BPM', 'Height(Feet)', 
                    'Height(Remainder_Inches)', 'Weight(lb)', 'Age']

scaler = StandardScaler()

train_data_scaled = scaler.fit_transform(train[numeric_features])
test_data_scaled = scaler.transform(test[numeric_features])

 

3.3 표준화된 데이터를 DataFrame으로 변환

train_data_scaled_df = pd.DataFrame(train_data_scaled, columns=numeric_features)
test_data_scaled_df = pd.DataFrame(test_data_scaled, columns=numeric_features)

display(train_data_scaled_df.head())
display(test_data_scaled_df.head())

'머신러닝 > 머신러닝: 입문 개념' 카테고리의 다른 글

데이터 분할  (0) 2024.12.06
로그 변환(Log transform)  (0) 2024.12.05
모델 성능 검증  (0) 2024.12.02
모델학습과 예측  (0) 2024.12.01
분류(Classification)  (3) 2024.11.30