02일차 [ 회귀 모델, 평가지표 ] - votus777/AI_study GitHub Wiki

회귀모델

회귀 : 한 바퀴 돌아서 본디의 자리나 상태로 돌아오는 것

그런데 왜 하필 회귀인건가? 그건 다음에 하기로..3일차에 쓸거다

모니터 설치한다고 야자 하지말고 갑자기 집 가라고 한다 개꿀

회귀모델이란

A변수와 B변수 사이의 상관관계와 한 변수가

다른 변수에게 얼마나 많은 영향을 끼치느냐를 밝혀내는 모델이다.

(자료를 설명해줄 수 있는 중심적인 트렌드)

y=wx +b 통계 모델의 기본 중의 기본

오차가 작을 수록 좋은 모델

이것을 판단하기 위해 여러가지 지표가 사용된다.

일단 여기선 MSE,RMSE, RMSLE, CEE, R2

MSE (평균 제곱 오차)

오차의 제곱에 대한 평균

평균 제곱 오차 공식

실제y값과 y에 대한 예측값


def mse(y,t):

return np.sum((y-t)**2)/t.size

오차를 그냥 더해버리면 +값과 -값이 모여 0이 될 수 있기에 제곱을 해서 처리한다.

즉,실제값과 추정값에 대한 차이

작을 수록 좋다

하지만 MSE값은 오류의 제곱을 구하므로

실제 오류 평균보다 더 커지거나 작아지는(0 미만일 때) 특성이 있다

RMSE (평균 제곱근 편차)

평균 제곱근 편차 공식
루트를 씌운 MSE

(왜 루트를 씌웠을까?)
설마 그냥 MSE 값이 큰게 불편해서 실제값과 유사하게 만들어 평가하기 쉽게 만든 것일 수도 있다

아무튼 RMSE는 크기 의존적 에러가 발생할 수 있다. 특이치에 민감하다.

스케일에 따라서 값이 천차만별로 달라지기 때문이다.

그래서 서로 다른 두 모델의 RMSE가 같다고 동일한 성능이라 말할 수 없다.

회귀 방식에서는 선호되지만 특이값이 많은 경우 MAE(Mean Absolute Error) 를 다루는게 좋다.

역시 작을 수록 더 좋다.

RMSLE (Root Mean Square Logarithmic Error)

RMSE에 로그를 취한 RMSLE 도 사용할 수 있다.

RMSE가 덧셈적 차이의 수치화라면, RMSLE는 곱셈적 차이의 수치화이다.

RMSLE는 이상치에 영향을 적게받고 대신 underestimation에 큰 비중을 둘 수 있다. 로그니까.

어쌔신크리드 로그 재밌었는데.

예) 배달시간이 30분으로 추정하고 실제로는 20분 걸리는건 문제가 없지만 (over estimate)

30분으로 낮게 추정하고 실제로 40분이 걸리면 큰 문제가 될 수 있다. (under estimate)

앞서 말한 RMSE의 단점, 크기 의존적 에러가 일어나지 않아서

예측값과 실제값의 상대적 에러를 측정할 수 있다.

(이건 좀 더 공부해야 정확하게 알 수 있을 것 같다)
그런데 지금 쓸 일이 있을까

CEE (교차 엔트로피 오차)


def cross_entrpy_error(y,t): 

delta = 1e-7  #로그이기 때문에 0이 들어갔을때 -inf이 나오지 않도록 최소값을 더해줌

return -np.sum(t*np.log(y+delta))

잘 모르겠다 이건

R2 (결정계수)

결정계수

R2 = 분산 / 편향 = 상관계수의 제곱

"모형의 설명력"

"종속 변수의 전체 변량에서 회귀모형이 설명할 수 있는 비율"

종속변수의 예측을 위해서는 R2가 높은 것이 좋다.

만약 R2가 0.72가 나왔다면 그 모델식이 72%의 설명력을 가진다고 볼 수 있다. ( 0 <= R2 <= 1)

Accuracy처럼 골라인이 딱 정해져 있기 때문에

RMSE보다 상당히 직관적인 지표로서 작용한다고 볼 수 있다.

회귀모델에서 R2 단독으로 쓰이기보다는 RMSE,MSE 등과 같이 쓰인다.

MAE (Mean Absolute Error)

MAE=∑|y−y^|n

  • 모델의 예측값과 실제값의 차이를 모두 더한다는 개념
  • 절대값을 취하기에 직관적임, 단 그래서 over 인지 underperformance 인지 모름
  • MSE 보다 robust 함 - 줏대있음
  • 보통은 RMSE가 일반적이지만 특이값이 많다면 MAE 사용

MAPE (Mean Absolute Percentage Error)

MAPE

  • MAE와 마찬가지로 MSE보다 특이치에 영향을 덜 받음
  • MAE와 같은 단점
  • 모델에 대한 편향이 존재한다 카더라
  • 0 근처의 값에서는 사용하기 어려움

MPE (Mean Percentage Error)

  • MAPE 에서 절대값을 제외한 거
  • 그래서 앞서 말한 over 인지 underperformance인지 알 수 있음

reference