1. 데이터 표준화(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 |