랜덤 추천 결과의 회귀 평가 계산
1. 개요
-
평균 절대 오차(MAE), 평균 제곱 오차(MSE), 평균 제곱근 오차(RMSE), 평균 절대 비율 오차(MAPE)를 활용하여 정량적인 분석을 수행합니다.
- 일반적으로 회귀 평가 지표는 실제 추천 결과와 사용자가 실제로 선택한 행동 간의 관계를 평가하기 위해 사용됩니다.
-
이를 통해 추천 시스템의 성능을 정량적으로 파악할 수 있습니다.
- 랜덤 추천은 영화에 무작위로 평점을 부여하고, 이를 기반으로 상위 영화를 추천하는 방식입니다.
- 본 분석 내용은 무작위 평점과 실제 평점 간의 차이를 평가합니다.
2. 회귀 평가 지표
1) 평균 절대 오차 (Mean Absolute Error - MAE)
- 실제값과 예측값의 차이를 절대값으로 계산하여 평균을 구한 값입니다.
- 오차의 크기를 직관적으로 보여주며, 이상치에 민감하지 않습니다.
- 값이 낮을수록 예측이 정확합니다.
- 전체적인 예측 오차의 평균적인 크기를 파악하는 데 적합합니다.
# MAE 계산 코드
mae = np.mean(np.abs(actual - predicted))
2) 평균 제곱 오차 (Mean Squared Error - MSE)
- 실제값과 예측값 간의 차이를 제곱하여 평균을 구한 값입니다.
- 큰 오차에 더 큰 영향을 부여하므로 이상치에 민감합니다.
- 값이 낮을수록 모델이 큰 오차를 잘 줄였음을 나타냅니다.
- 큰 오차가 모델 성능에 미치는 영향을 평가하는 데 적합합니다.
# MSE 계산 코드
mse = np.mean((actual - predicted) ** 2)
3) 평균 제곱근 오차 (Root Mean Squared Error - RMSE)
- MSE의 제곱근을 취한 값으로, 데이터와 동일한 단위를 가집니다.
- MSE와 동일하게 큰 오차에 민감하지만, 해석이 더 직관적입니다.
- 값이 낮을수록 모델 성능이 우수함을 의미합니다.
- 큰 오차의 영향을 이해하기 적합합니다.
# RMSE 계산 코드
rmse = np.sqrt(mse)
4) 평균 절대 비율 오차 (Mean Absolute Percentage Error - MAPE)
- 실제값과 예측값의 차이를 실제값으로 나누어 비율로 계산한 뒤 평균을 구한 값입니다.
- 오차를 상대적인 퍼센트로 표현하며, 해석이 용이합니다.
- 값이 낮을수록 예측이 실제값에 비례해 정확합니다. 단, 데이터에 0이 포함되면 왜곡될 수 있습니다.
- 데이터 값의 크기에 무관하게 결과를 해석할 수 있습니다.
# MAPE 계산 코드
mape = np.mean(np.abs((actual - predicted) / actual.replace(0, np.nan))) * 100
3. 분석 결과 예시
1) 랜덤 추천으로 생성된 상위 영화
rate_random movie rate title year
0 8.93 1 9.2 The Shawshank 1994
1 8.75 3 8.7 Godfather 1972
2 8.64 2 8.5 The Dark Knight Rises 2008
2) 회귀 평가 지표 계산 결과
-------------------------
--------분석 결과--------
-------------------------
MAE(평균 절대 오차): 0.45
MSE(평균 제곱 오차): 0.32
RMSE(평균 제곱근 오차): 0.57
MAPE(평균 절대 비율 오차): 5.21