Allen's 데이터 맛집
[머신러닝] 회귀 : 모델 성능 평가(R2-Score, MAE, MSE, RMSE, MSLE, RMSLE...) 본문
[머신러닝] 회귀 : 모델 성능 평가(R2-Score, MAE, MSE, RMSE, MSLE, RMSLE...)
Allen93 2023. 9. 3. 17:45"데이터 예측의 정확도 측정, 회귀 모델 성능 평가"
데이터 분석과 머신러닝을 통해 예측 모델을 만들 때 중요한 과정 중 하나인 '회귀 모델 성능 평가'에 대해 알아보겠습니다. 모델의 예측 결과를 정량적으로 평가하고 비교하는 것은 예측의 정확도를 평가하는 데 매우 중요합니다.
회귀 모델 성능 평가: 예측과 실제의 접점
회귀 모델의 성능을 평가하는 주요 지표들을 알아보겠습니다. 이러한 지표들은 모델의 예측 결과와 실제 값 사이의 차이를 정량화하여 모델의 정확도를 측정합니다.
R-squared (R2) Score: R2 스코어는 예측 결과와 실제 값 사이의 분산 비율을 나타내며, 0에서 1 사이의 값을 가집니다. 높은 R2 스코어는 모델이 데이터를 얼마나 잘 설명하는지를 나타냅니다. 1에 가까울수록 좋은 모델입니다.
Mean Absolute Error (MAE): MAE는 예측 결과와 실제 값 사이의 절대 오차의 평균을 나타냅니다. 값이 작을수록 모델의 예측이 실제 값과 가깝다는 것을 의미합니다.
Mean Squared Error (MSE): MSE는 예측 결과와 실제 값 사이의 제곱 오차의 평균을 나타냅니다. 제곱을 하기 때문에 오차가 크면 더 큰 가중치를 받게 됩니다.
Root Mean Squared Error (RMSE): RMSE는 MSE의 제곱근으로, 예측 결과와 실제 값 사이의 오차를 제곱한 값의 제곱근을 나타냅니다. MSE와 달리 실제 오차와 동일한 단위를 가지므로 해석이 더 쉽습니다.
Root Mean Squared Logarithmic Error (RMSLE): RMSLE는 예측 결과와 실제 값 사이의 로그 오차의 제곱근을 나타냅니다. 이는 예측 값과 실제 값의 비율을 고려하여 오차를 측정하며, 상대적인 오차를 반영합니다.
이러한 평가 지표를 사용하여 모델의 성능을 정량적으로 평가하고, 각 지표의 특성을 이해하여 어떤 지표를 주로 활용할지 결정할 수 있습니다.
간단한 파이썬 코드 예제:
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error, mean_squared_log_error
# 실제 값과 예측 결과
actual = [2.5, 3.0, 5.0, 7.5]
predicted = [2.7, 2.9, 4.8, 7.0]
# R2 스코어
r2 = r2_score(actual, predicted)
# MAE
mae = mean_absolute_error(actual, predicted)
# MSE
mse = mean_squared_error(actual, predicted)
# RMSE
rmse = mean_squared_error(actual, predicted, squared=False)
# RMSLE
rmsle = mean_squared_log_error(actual, predicted)
print("R2 Score:", r2)
print("MAE:", mae)
print("MSE:", mse)
print("RMSE:", rmse)
print("RMSLE:", rmsle)
적용 상황과 해석:
R2 스코어는 모델이 데이터를 얼마나 잘 설명하는지를 나타내며, 1에 가까울수록 좋은 예측 모델입니다.
MAE, MSE, RMSE, RMSLE는 모델의 예측 오차를 다양한 관점에서 평가합니다.
각각의 지표는 데이터의 특성에 따라 적합한 상황이 다를 수 있습니다. 따라서 예측 모델의 목적과 데이터의 특성을 고려하여 적절한 평가 지표를 선택하는 것이 중요합니다.