[데이터 사이언스/개념] 표준화의 장점 및 데이터 scale 차이에 따른 영향
2024. 8. 15. 19:33ㆍAI & DS/머신러닝
표준화를 통해 데이터의 스케일 차이를 줄임으로써
모델이 각 특성에 균등하게 학습할 수 있도록 도와줍니다.
이는 특히 경사 하강법을 사용하는 모델에서
학습 속도를 높이고 성능을 향상시키는 데 중요한 역할을 합니다.
표준화의 장점
학습 속도 향상
- 많은 머신 러닝 알고리즘은 데이터의 크기와 분포에 민감합니다. 표준화된 데이터는 모델이 더 빠르게 수렴할 수 있도록 도와줍니다. 특히 경사 하강법을 사용하는 알고리즘에서 학습 속도를 크게 향상시킬 수 있습니다.
스케일 차이 문제 해결
- 원본 데이터의 특성들이 매우 다른 스케일을 가질 경우, 스케일이 큰 특성들이 모델 학습에 더 큰 영향을 미치게 됩니다. 표준화는 모든 특성들을 동일한 스케일로 변환하여, 각각의 특성이 동일한 중요도로 고려되게 합니다.
모델 성능 향상
- 표준화는 특히 거리 기반 알고리즘(KNN, SVM, K-Mean clustering 등)에서 중요합니다. 이 알고리즘들은 특성 간의 거리 계산에 의존하기 때문에, 특성들이 동일한 스케일을 가질 때 더 좋은 성능을 발휘합니다.
회귀 모델의 안정성 증가
- 회귀 모델에서는 특성들이 서로 다른 스케일을 가지면, 계수 추정값이 왜곡될 수 있습니다. 표준화를 통해 이러한 문제를 줄일 수 있습니다.
숫자 표현의 안정성
- 표준화를 통해 값의 범위가 줄어들면, 숫자 표현의 안정성이 증가합니다. 이는 특히 신경망과 같은 깊은 학습 모델에서 중요합니다. 신경망에서는 큰 값이 곧 큰 기울기를 의미하기 때문에, 값이 너무 크거나 작으면 학습이 불안정해질 수 있습니다.
데이터의 스케일 차이
- 각 특성(변수)들의 값의 범위가 서로 다른 정도를 의미합니다.
- 예를 들어, 어떤 특성의 값이 1에서 10 사이에 분포하고, 다른 특성의 값이 1000에서 10000 사이에 분포한다면, 이 두 특성 간의 스케일 차이가 매우 큰 것입니다.
스케일 차이의 영향
큰 스케일 차이
- 데이터의 특정 특성들이 다른 특성들에 비해 매우 큰 값이나 매우 작은 값을 가질 때.
- 예를 들어, 주택 가격 데이터에서 면적이 50에서 500 평방미터 사이에 분포하고, 가격이 100,000에서 1,000,000 달러 사이에 분포하는 경우, 면적과 가격 간의 스케일 차이가 큽니다.
- 머신 러닝 모델에서 큰 스케일 차이를 가지는 특성들은 더 큰 가중치를 가질 가능성이 높아집니다. 이는 모델이 특정 특성에 치우쳐 학습되는 결과를 초래할 수 있습니다.
작은 스케일 차이
- 데이터의 모든 특성들이 비슷한 범위 내의 값을 가질 때.
- 예를 들어, 학생들의 시험 점수를 0에서 100 사이로 측정한 경우, 모든 특성들이 동일한 스케일을 가집니다.
- 스케일 차이가 작은 데이터는 각 특성이 모델에 균등하게 기여할 수 있도록 합니다.
예시) 원본 데이터
import pandas as pd
# 원본 데이터 예시
df = pd.DataFrame({
'feature1': [1, 2, 3, 4, 5], # 작은 스케일 (1에서 5)
'feature2': [10, 20, 30, 40, 50] # 큰 스케일 (10에서 50)
})
print("Original DataFrame:")
print(df)
원본 데이터 출력 결과
Original DataFrame:
feature1 feature2
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
- feature1은 1에서 5 사이의 값을 가집니다.
- feature2는 10에서 50 사이의 값을 가집니다.
- 두 특성 간의 값의 범위(스케일) 차이가 큽니다.
표준화 후 데이터
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df_standardized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
print("\\\\nStandardized DataFrame:")
print(df_standardized)
표준화된 데이터 출력 결과
Standardized DataFrame:
feature1 feature2
0 -1.414214 -1.414214
1 -0.707107 -0.707107
2 0.000000 0.000000
3 0.707107 0.707107
4 1.414214 1.414214
- feature1과 feature2 모두 표준화되어 평균이 0, 표준편차가 1인 값을 가집니다.
- 두 특성 간의 값의 범위(스케일)가 동일해졌습니다.
결론
- 큰 스케일 차이
- 원본 데이터에서 feature1과 feature2의 값의 범위가 크게 다릅니다. feature1은 1에서 5 사이, feature2는 10에서 50 사이에 분포합니다.
- 작은 스케일 차이
- 표준화된 데이터에서 두 특성 모두 평균이 0이고 표준편차가 1인 값을 가집니다. 즉, 값의 범위가 동일해졌습니다.
'AI & DS > 머신러닝' 카테고리의 다른 글
[데이터 사이언스/문법] columnTransformer란? (0) | 2024.08.16 |
---|---|
[데이터 사이언스/개념/문법] oneHotCoding이란? (0) | 2024.08.16 |
[데이터 사이언스/개념/문법] pipeline이란? (0) | 2024.08.15 |
[데이터 사이언스/문법] DataFrame 이란? (0) | 2024.08.15 |
[데이터 사이언스/문법] Python 라이브러리 - tqdm 이란? (0) | 2024.08.14 |