분류모델평가(정확도)
회귀모델평가(오차 줄이기)
*키워드 설명
실제값(target) : 목표값
평균값 : 최소한 평균값 보다는 실제값에 가까운 예측값을 원함, 최소한 예측값이 평균값 보다 실제값에 가까워야함, 예측값이 평균값 보다 오차를 얼마나 줄였는지 궁금.
예측값 : 모델이 새로 예측한 값, 최소한 평균값보다 좋아야하며 모델이 평균보다 얼마나 잘 예측했을지 궁금.
회귀모델 성능은 실제와 예측값의 차이, 즉 오차 크기로 평가.
실제값 - 예측값
오차의 평균으로 표현 할 수 있어야함.
오차 평균으로 표현하려면 우선적으로 오차 합이 필요.
방법 1 : 오차 제곱의 합 (SSE)
오차 제곱 합의 평균 -> MSE
MSE를 루트를 사용해 일반적 값으로 표현 -> RMSE
방법 2 : 오차 절대값의 합(MAE)
오차 비율을 표시하고 싶은 경우 -> MAPE
=> 값은 모두 작아야 모델 성능 GOOD!
1) SST : 실제값 - 평균값
(전체오차 : 우리에게 허용된 오차, 최소한 평균보다 성능이 좋아야해!)
2) SSR : 예측값 - 평균값
(우리가 해결할 영역(회귀식이 잡은 오차), 클수록 좋음, 실제값과 가까워지니까 !)
3) SSE : 예측값 - 실제값
(전체 오차 중 회귀식이 잡지 못한 오차)
오차 제곱 합의 평균 -> MSE으로 여전히 설명이 부족
모델 성능을 잘 해석하기 위해 만든 MSE표준화 버전이 R2 결정계수
전체 오차 SST 중 회귀식이 잡아낸 오차 SSR의 비율
R2 =1이면, MSE =0
R2 = SST/SSR
=우리에게 허용된 오차 / 회귀식이 잡은 오차
=1 - (전체오차 / 회귀식이 잡지 못한 오차)
SST = SSR + SSE
회귀모델 성능평가 함수 (from sklearn.metrics import ...)
-mean_squared_error
-mean_absolute_error
-mean_absolute_percentage_erorr
-r2_score : 클수록 좋음
: 실제값 (y_test)과 예측값(y_pred)을 매개변수로 전달해 평가
# 평가하기
# mean_absolute_error(실젯값, 예측값)
print(mean_absolute_error(y_test, y_pred))
혼동행렬
confusin matrix (오분류표)
정확도
정밀도
재현율