에이블스쿨 그만둔지는 3개월정도 됐으나,,, 이번 졸작하면서 성능평가 부분에서 애를 많이 먹어서 복습 + 리뷰겸 포스팅 작성을 하려한다.
이번 포스팅은 성능평가 중 회귀 모델 성능 평가
를 다뤄볼 것이다.
0. 들어가기 전
일단 성능평가가 중요한 이유는 우리의 모델을 "남에게 어떻게 설명한 것인가? 왜 우리 모델이 좋은가?" 에 대해 알려야 하기 때문이다.
회귀 모델이 정확한 값을 예측하기는 사실상 어려움으로 예측 값이 실제 값에 가까울수록 좋은 모델 이라고 평가한다. 그러므로 오차를 줄이는데 신경써야한다.
시작하기 앞서 알아둬야 할 기호로는
y : 실제값 ŷ : 예측값 ȳ : 평균값
y-bar와 y-hat이 생긴 유래라던데 ..검은선은 예측한 값, 파란선은 평균값, 빨간선은 예측값 자른 것.. 믿거나 말거나
1. MSE(Mean Squared Error)
- 오차 제곱의 합을 구한 후 평균을 구한다.
- 제곱을 하기 때문에 이상치에 민감하다
- 예측 변수와 단위가 다르다
2. RMSE(Root Mean Squared Error)
- 평균 제곱근 오차, MSE값에 루트를 사용해 일반적인 값으로 표현한 것이다.
- 직관적이며 예측변수와 단위가 같다
해석 : 실제 대비 예측에서 3.39정도 오차가 발생한다.
3. MAE(Mean Absolute Error)
- 오차 절대값의 합을 구한 후 평균을 구함
- 예측변수와 단위가 같으며 에러의 크기를 그대로 반영한다.
- 오차값이 이상치의 영향을 적게 받는다.
- 인간이 보기에 제일 직관적이다
4. 오차를 바라보는 다양한 관점
① SST(Sum Squared Total, 전체오차)
② SSR(Sum Squared Regression, 전체오차 중 회귀식으로 잡아낸 오차)
③ SSE(Sum Squared Error, 전체 오차 중에서 회귀식으로 아직 잡지 못한 오차)
만약 우리가 어떤 회귀모델을 만들어 사용한다면 최소한.. SST보다는 성능이 좋아야 한다. 그래서 SST는 우리에게 허용된(?) 오차라고도 부른다.
SSE는 작아질수록 실제값과 예측값이 비슷해지므로 작게 만드는 것이 우리가 할 일임다..
5. R2(결정 계수, R-Squared)
- 위 성능지표로는 설명이 부족한 부분이 있다.
- 모델 성능을 잘 해석하기 위해서 만든 MSE의 표준화된 버전
- 전체 오차 중에서 회귀식이 잡아낸 오차 비율
- 위 성능지표와 다르게 클수록 좋은 값
6. 파이썬 코드
모든 평가지표는 sklearn.metrics
에 있다.
# MSE
from sklearn.metrics import mean_squared_error
# MAE
from sklearn.metrics import mean_absolute_error
# R2
from sklearn.metrics import r2_score
RMSE
는 따로 제공하지 않기에 MSE
값에 **1/2
을 이용해서 구하면 된다.
'교육 > KT 에이블스쿨' 카테고리의 다른 글
[KT AIVLE] 분류모델 성능평가지표 (0) | 2023.12.13 |
---|---|
[KT AIVLE] 1주차 - Python 프로그래밍 & 라이브러리 #4 (0) | 2023.08.20 |
[KT AIVLE] 1주차 - Git② #3 (0) | 2023.08.19 |
[KT AIVLE] 1주차 - Git① #2 (0) | 2023.08.16 |
[KT AIVLE] 오프닝데이 후기 #1 (0) | 2023.08.08 |