일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- q-러닝
- 데이터 전처리
- 손실 함수
- reinforcement learning
- 강화학습
- 인공지능
- 강화 학습
- 과적합
- CNN
- 최적화
- Machine Learning
- Q-Learning
- 지도 학습
- 활성화 함수
- 머신 러닝
- 인공 신경망
- 회귀
- 신경망
- 정규화
- 교차 검증
- 딥러닝
- LSTM
- 자연어 처리
- GRU
- rnn
- 차원 축소
- Deep learning
- python
- 머신러닝
- AI
- Today
- Total
move84
머신러닝에서의 정규화(Normalization)와 표준화(Standardization) 본문
머신러닝 모델을 훈련시키기 전에 데이터를 전처리하는 것은 매우 중요하다. 그중에서도 정규화(Normalization)와 표준화(Standardization)는 데이터의 스케일을 조정하여 모델의 성능을 향상시키는 데 필수적인 기술이다. 이 두 방법은 데이터의 분포를 조정하여 특정 알고리즘이 더 잘 작동하도록 돕는다.
✨ 정규화 (Normalization)
정규화는 데이터의 값을 0과 1 사이의 범위로 조정하는 방법이다. 이는 데이터의 최소값과 최대값을 사용하여 스케일을 변경한다. 정규화는 특히 데이터의 범위가 다를 때 유용하며, 몇몇 알고리즘에서는 더 나은 성능을 보이게 한다. Min-Max 스케일링이라고도 한다.
📝 정규화 방법 (Normalization Methods)
Min-Max 스케일링 (Min-Max Scaling): 가장 일반적인 정규화 방법으로, 데이터의 최소값과 최대값을 이용하여 값을 0과 1 사이로 조정한다.
- 수식: X_scaled = (X - X_min) / (X_max - X_min)
Robust 스케일링 (Robust Scaling): 이상치(Outlier)의 영향을 최소화하면서 데이터를 조정한다. 중앙값(Median)과 사분위수(Quartile)를 사용한다.
- 수식: X_scaled = (X - Q1) / (Q3 - Q1) 여기서 Q1은 1사분위수, Q3은 3사분위수이다.
💻 Python 예제 (Python Example)
다음은 Python의 scikit-learn 라이브러리를 사용하여 Min-Max 스케일링을 적용하는 예제이다.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
data = np.array([[1, 2], [3, 4], [5, 6]])
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)
print(scaled_data)
이 코드는 2개의 특성을 가진 3개의 데이터 포인트를 정규화한다. 결과적으로 모든 값은 0과 1 사이의 범위로 변환된다.
📊 표준화 (Standardization)
표준화는 데이터의 평균을 0으로, 표준편차를 1로 만드는 방법이다. 이는 데이터가 정규 분포를 따르도록 변환하며, 이상치의 영향을 줄이는 데 도움이 된다. 표준화는 많은 머신러닝 알고리즘에서 데이터를 더 잘 처리할 수 있게 한다. Z-score 정규화라고도 한다.
📝 표준화 방법 (Standardization Methods)
Z-score 표준화 (Z-score Standardization): 데이터의 평균과 표준편차를 사용하여 값을 조정한다.
- 수식: X_scaled = (X - mean) / std 여기서 mean은 평균, std는 표준편차이다.
Sklearn의 StandardScaler: scikit-learn 라이브러리에서 제공하는 표준화 클래스이다. Z-score 표준화를 쉽게 구현할 수 있다.
💻 Python 예제 (Python Example)
다음은 Python의 scikit-learn 라이브러리를 사용하여 Z-score 표준화를 적용하는 예제이다.
from sklearn.preprocessing import StandardScaler
import numpy as np
data = np.array([[1, 2], [3, 4], [5, 6]])
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)
print(scaled_data)
이 코드는 데이터의 평균을 0으로, 표준편차를 1로 조정한다. 결과적으로 데이터는 표준 정규 분포에 가깝게 변환된다.
🤔 정규화 vs 표준화 (Normalization vs Standardization)
정규화 (Normalization):
- 데이터를 0과 1 사이의 범위로 조정한다.
- 데이터 분포가 균등할 때 유용하다.
- 이상치에 민감하다.
표준화 (Standardization):
- 데이터의 평균을 0, 표준편차를 1로 조정한다.
- 데이터가 정규 분포를 따를 때 유용하다.
- 이상치의 영향을 줄인다.
어떤 방법을 선택할지는 데이터의 특성과 사용하는 알고리즘에 따라 달라진다. 일반적으로는 표준화를 더 많이 사용하지만, 특정 알고리즘(예: 신경망)에서는 정규화가 더 나은 성능을 보일 수 있다.
💡 어떤 것을 선택해야 할까? (Which one should you choose?)
- 데이터 분포 (Data Distribution): 데이터가 정규 분포에 가깝다면 표준화를, 그렇지 않다면 정규화를 고려한다.
- 알고리즘 (Algorithm): 일부 알고리즘은 특정 스케일링 방법에 더 민감하게 반응한다. 예를 들어, K-means는 스케일에 민감하므로 정규화가 필요할 수 있다.
- 이상치 (Outliers): 데이터에 이상치가 많다면 표준화 또는 Robust 스케일링을 사용한다.
📌 핵심 용어 정리 (Summary of Key Terms)
- 정규화 (Normalization): 데이터를 특정 범위(예: 0과 1 사이)로 조정하는 과정. (Data scaling to a specific range, e.g., between 0 and 1)
- 표준화 (Standardization): 데이터의 평균을 0으로, 표준편차를 1로 만드는 과정. (Transforming data to have a mean of 0 and a standard deviation of 1)
- Min-Max 스케일링 (Min-Max Scaling): 최소값과 최대값을 사용하여 데이터를 0과 1 사이로 조정하는 정규화 방법. (A normalization method that scales data between 0 and 1 using minimum and maximum values)
- Z-score 표준화 (Z-score Standardization): 평균과 표준편차를 사용하여 데이터를 조정하는 표준화 방법. (A standardization method that scales data using mean and standard deviation)
- Robust 스케일링 (Robust Scaling): 중앙값과 사분위수를 사용하여 이상치의 영향을 줄이는 스케일링 방법. (A scaling method that reduces the impact of outliers using median and quartiles)
- 이상치 (Outlier): 다른 데이터와 크게 다른 값. (A value that is significantly different from other data points)
'머신러닝' 카테고리의 다른 글
머신러닝 데이터 전처리(Data Preprocessing)의 필요성과 기법 (0) | 2025.04.10 |
---|---|
머신러닝: K-최근접 이웃 (K-Nearest Neighbors, KNN) 알고리즘 (0) | 2025.04.10 |
머신러닝: 과적합(Overfitting)과 과소적합(Underfitting) (0) | 2025.04.10 |
경사하강법(Gradient Descent)의 직관적 이해 (0) | 2025.04.10 |
머신러닝: 로지스틱 회귀(Logistic Regression) (0) | 2025.04.10 |