728x90
반응형
RMSE는 예측값과 실제값 간의 차이를 제곱한 뒤 평균을 내고, 그 평균의 제곱근을 취한 값입니다.
예측 모델의 성능을 평가할 때 가장 널리 쓰이는 지표 중 하나로, 예측 오차의 크기를 직관적으로 나타냅니다.
✅ 1. RMSE 수

✅ 2. RMSE의 특징
| 항목 | 설명 |
| 단위 | 실제값과 동일한 단위 (ex: 가격, 온도, 거리 등) |
| 오차 민감도 | 큰 오차에 매우 민감 → 이상값(outlier)에 영향을 많이 받음 |
| 용도 | 회귀 문제에서 모델 성능을 평가할 때 사용 |
| 낮을수록 좋음 | RMSE는 0에 가까울수록 예측이 정확함을 의미 |
✅ 3. RMSE vs MAE 비교
| 항목 | RMSE (Root Mean Squared Error) | MAE (Mean Absolute Error) |
| 계산 방식 | 제곱한 뒤 평균 → 루트 | 절댓값의 평균 |
| 이상값 영향 | 민감 (큰 오차에 더 큰 패널티) | 둔감 (모든 오차를 동일하게 처리) |
| 해석 | 큰 오차가 중요할 때 사용 | 일관된 오차 수준을 파악할 때 사용 |
✅ 4. Python으로 RMSE 계산하기
📌 예제 1: sklearn 사용
from sklearn.metrics import mean_squared_error
import numpy as np
# 실제값과 예측값
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
# RMSE 계산
rmse = mean_squared_error(y_true, y_pred, squared=False)
print(f"RMSE: {rmse:.3f}")
📌 예제 2: 수식으로 직접 계산
import numpy as np
y_true = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])
mse = np.mean((y_true - y_pred) ** 2)
rmse = np.sqrt(mse)
print(f"RMSE: {rmse:.3f}")
✅ 5. RMSE가 낮다는 건 어떤 의미일까?
| RMSE | 값해석 |
| 0 | 예측이 완벽하게 일치 |
| 낮음 (예: 1~2) | 모델이 꽤 정확하게 예측함 |
| 높음 (예: 10 이상) | 예측 오차가 큼 → 모델 개선 필요 |
예시:
- 모델이 아파트 가격을 예측하고, RMSE가 1,000이라면 → 예측값이 평균적으로 실제값에서 ±1,000만큼 차이남.
✅ 6. RMSE를 낮추기 위한 방법
- 더 좋은 모델 사용: 선형회귀 → 랜덤포레스트, XGBoost, 딥러닝 등
- Feature Engineering: 의미 있는 파생 변수 추가
- Hyperparameter Tuning: 모델의 학습률, 깊이 등 최적화
- 이상치 제거 또는 처리
- 데이터 정규화 / 스케일링
🎯 결론
- ✅ RMSE는 회귀 모델에서 예측 정확도를 나타내는 대표 지표입니다.
- ✅ 값이 낮을수록 모델의 성능이 좋다는 의미이며, 실제 단위로 오차를 해석할 수 있어 직관적입니다.
- ⚠️ 단, 이상치에 민감하기 때문에 데이터 전처리가 중요합니다.
🚀 즉, RMSE는 예측 모델이 실제에 얼마나 가까운지를 보여주는 핵심 지표!
728x90
반응형
'Data Analysis Log' 카테고리의 다른 글
| 📌 CV (변동계수, Coefficient of Variation) 개요 (0) | 2025.04.14 |
|---|---|
| 🔥 DNN (Deep Neural Network, 심층 신경망) 개요 (0) | 2025.03.19 |
| 🔥 T-검정(T-Test) T-Test, T-검정이 뭐야?????? (1) | 2025.03.11 |
| 🔥 ARIMA (AutoRegressive Integrated Moving Average) 모델 개요 (1) | 2025.03.10 |
| Prophet 을 활용한 이상치 탐지 (4) | 2025.03.08 |