[15] KT AIVLE 3기 ai트랙 - 에이블스쿨 12주차, 회귀 Metric 정리

반응형

1. 이번 주의 알찬 구성 (4.17. ~ 21.)

이번 주는 6차 미프와 에이블데이로 이루어진 알찬 주간이다. 6차 미프도 두개의 프로젝트로 이루어져서 꽉 찬 느낌이었고 에이블데이도 있었기 때문이다. 그런데 쓰다보니까.. 이론적인 내용을 정리하느라 분량이 좀 많아져서 에이블 데이는 따로 쓰기로 했다.

 

 

2. AI 챗봇 만들기 (17~18)

이번에는 깔끔하게 개인 실습으로 진행되었다. AI 챗봇이라서 뭔가 거창해보이지만 까보면 클래스 분류 모델 구축이었다. 그래도 input data가 텍스트 데이터여서 재미있는 경험이었다. 저번 지옥의 4차 미프(문의 내용 분류 모델링)에서 텍스트에 대한 경험을 더 쌓고 싶었는데, 이런 추가적인 기회가 있어서 다행이었다. 이번 프로젝트는 2일치이다보니 데이터가 작아서 더 쉬웠던 것 같긴 하다. 4차 때는 경험해보지 못했던 다양한 임베딩 방식을 실습해볼 수 있는 시간이었다. 요즘 잘나가는 생성형 모델과 달리 정해진 도메인에서만 답변해주는 챗봇이기에 한계점은 분명하지만, 쉽게 구축할 수 있고 컴퓨팅 파워도 그렇게 필요하지 않으니 어딘가에 써먹을 방법이 있을 것 같다고 생각했다.

 

 

 

3. 장애인 콜택시 대기시간 예측 (19~20)

1) 프로젝트 진행

이번 프로젝트는 팀 프로젝트이긴 하지만 자료 제출도 없고 AICE 시험 대비로 좀 넉넉하게 구성된 느낌이었다. 시계열 데이터였는데, 전에 경찰대학 공모전에서 완전 비슷하게 진행했던 경험이 떠올라서 호다닥 끝내고 좀 쉬었다. 최근 취준 때문에 너무 달렸는데 아주 힐링이었다... ㅠㅠ

 

 

2) 뒤통수 맞았던 회귀 모델 metric 정리

(1) 통수를 맞게 된 계기 - R2 vs MAPE

그런데 프로젝트를 진행하다가 모델 평가 부분에서 굉장히 이상한 점을 발견했다. 교안에 MAE와 MAPE로 모델 성능을 평가하라고 되어있었다. MAPE는 'MAE의 퍼센트 버전이다' 라는 내용만 알고 있어서 metric의 측정 범위 같은게 감이 안왔다. 얼마 정도 되어야 모델이 좋은건지? 라는 생각이 들어서 교안에는 언급되어 있지 않지만, 회귀 모델에서 든든한 국밥같은 metric인 R2 Score를 호출했다. 그런데.... 그런데!!! MAPE 상으로는 그렇게 나쁘지 않으나 R2 Score를 보니 거의 0에 가까웠다. ?? train set으로 측정했을 때는 R2는 0.9대이고 MAPE도 0.1 대였는데, test set으로 측정하니 R2는 0대이고 MAPE는 0.1 중반대였던 것이다.

 

분류 모델은 맞다 or 틀리다 가 확실히 정해지는데 회귀는 그렇지 않으니 프로젝트 진행 시에 R2 로 퉁치고 지나갔던 점을 반성하게 되었다... 그래서 이 참에 상대적으로 회귀 metric을 여러 예시를 직접 만들어보면서 다시 정리해보았다. 

 

 

(2) RMSE

- 표준편차를 구하는 형태와 같다. 다만 표준편차는 real data의 평균을 대상으로 구한 차이값이고 RMSE는 예측모델을 대상으로 구한 차이값이라 target의 차이가 있음.

- 차이값을 제곱하는 특성으로 인하여 아래나올 MAE보다는 이상치에 민감 -> 더 큰 오류에 더 많은 가중치를 부여한다고 해석할 수도 있음. 스케일에 영향을 크게 받는다고도 해석 가능.

- 캐글이나 데이콘에서 국룰처럼 다뤄지는 지표

$$ \sqrt{\frac{\sum ({y-\hat{y}})^{2}}{n}} $$

 

 

(3) MAE

- MSE 공식에서 제곱대신 절대값을 취함. -> MSE보다는 이상치에 덜 민감

$$ \frac{\sum \left|y - \hat{y} \right|}{n} $$

 

 

(4) MAPE

- 퍼센트로 표시되어 이해하기 쉽다. 

- 오차를 실제값과 비교했을 때의 상대적인 비율을 구함. -> '상대적인' 특성으로 인하여 여러개의 작은 오차가 있는 모델보다는 소수의 큰 오차가 있는 모델이 더 낮은 값을 가지게 됨 (아래 그래프 예시 확인) 

- 수식의 특성 상 real data가 0에 가까우면 값이 너무 커져서 사용할 수 없음.

$$ \frac{100}{n}\sum \left|\frac{y - \hat{y}}{y}\right| $$

- 공부할만한 링크 모음

https://stats.stackexchange.com/questions/299712/what-are-the-shortcomings-of-the-mean-absolute-percentage-error-mape

https://stats.stackexchange.com/questions/327464/mape-vs-r-squared-in-regression-models

 

 

(5) R2

- 회귀모델의 설명력을 직관적으로 설명해서 모델끼리 비교하기 용이하다.

- 그런데... 이번 실습을 진행하면서 R2에 대해서 공부해보니 함부로 사용하기에는 정말 어려운 녀석임을 깨달았다. 비교하기 쉽다는 특성 때문에 그동안 무지성으로 사용했었다. 이번 미프로 인해서 알게 된 최대 성과.

$$ R^{2} = 1-\frac{SSE}{SST} $$ $$ SSE=\frac{1}{n}\sum (y-\hat{y})^{2} $$ $$ SST=\frac{1}{n}\sum (y-\bar{y})^{2} $$

- 공부할만한 링크 모음

https://statisticsbyjim.com/regression/r-squared-invalid-nonlinear-regression/

https://towardsdatascience.com/avoid-r-squared-to-judge-regression-model-performance-5c2bc53c8e2e

https://stats.stackexchange.com/questions/547863/heres-why-you-can-hopefully-use-r2-for-non-linear-models-why-not

 

 

(6) 같은 MAPE 그래프 비교 

일일히 수치를 0.1씩 바꿔가면서 적당한 값을 찾아보았다. 

같은 MAPE

 

(7) 같은 R2 그래프 비교

R2도 같고 그래프 개형도 비슷한데 MAPE는 굉장히 차이가 심하다.

 

위의 그래프와 R2는 같으나 MAPE는 더욱 커진 사례들

 

정리 : 단일 지표만으로 회귀 성능을 측정하기는 어렵다!