1. Regression Evaluation Metrics
- MAE
모델의 예측값과 실제값의 차이를 절댓값을 취해 모두 더해, 관측개수로 나누는 개념이다. 절댓값을 취하기 때문에 실제값보다 모델이 높은 값인지 적은 값인지는 알 수 없고, 차이의 크기만 알 수 있다.
2.MSE
제곱을 해 예측값과 실제값의 차이의 면적 합이다. 제곱을 하기 때문에 이상치나 차이가 크게 나타나면 크기가 많이 늘어난다. 이상치에 민감하다.
3. RSME
MSE에 루트를 씌운 값이다. 오류지표를 그래도 실제값과 비슷하게 만들어 이상치에 예민한 부분을 제거하며, 해석을 용이하게 한다.
4. R2 score
0부터 1사이의 값을 나타내기 때문에 스케일의 영향 없이 r2의 값만 보고 성능을 판단할 수 있는 장점을 가진다.
2. Classification Evaluation Metrics
(헷갈릴 때 TIP: 맨 앞에 있는 단어는 예측이 올바르게/틀린지를 의미하고 뒤의 것은 내 예측이다. )
- TP(True Postivie) : 맞는 것을 맞다고 올바르게 예측한 경우 (1023)
- TN(True Negative) : 아닌 것을 아니라고 올바르게 예측한 경우(6073)
- FP(False Positive): 아닌 것을 맞다고 예측해 틀린 경우(343)
- FN(False Negative): 맞는 것을 아니라고 예측해 틀린 경우(992)ㅂ
-분류문제에서는 임계값이 중요하다. 임계값에 따라 정밀도나 재현율이 달라지기 때문에, 문제의 상황에 따라 적절한 임계값을 선택할 필요가 있다.
- Accuracy
전체 중 정답을 맞춘 비율이다. True를 True라고 맞춘 것과 False를 False라고 맞춘 비율의 의미한다. 물론 1에 가까울 수록 잘 분류를 한 것이라고 한다. 그러나, False를 False라고 예측하는 것보다 True인것을 찾아내는 것이 중요한 문제인 경우 적합하지 않을 수 있다. 예를 들어 90%의 정확도가 있다고 하더라도, 암을 진단하는 문제라고 했을 때는 90명의 정상인 환자를 정상이라고 진단 내리는 것보다 10% 암환자를 암이라고 진단내리는 것이 중요하기 때문이다. 반대로, True를 True라고 예측하는 것보다 False를 찾아내는 것이 중요한 문제일 경우에도 적용된다. 판결을 내릴 때, 90%의 정확성을 가지고 있다고 하더라고, 무고한 사람을 True라고 판결하면 안되기 때문이다.
이를 보완하기 위한 것이 정밀도(Precision) 와 재현율(Recall)이다.
2. Precision(정밀도)
True라고 예측한 것 중 실제로 True인 비율이다. 정밀도의 한계는 확실히 맞는 것이 아닌 것들을 놓친다는 것이다. 100명 중 10명이 확실히 암이고, 이를 예측한다면 정밀도는 1이나오겠지만 실상은 10명 이상일수도 있다.(True라고 한 예측이 틀릴 수 있기 때문에 나온느 문제이다.) 이 때, 놓친(5명이라고 하자) 5명은 진료를 받지 못하게 되는 문제가 있다.
3. Recall(재현율)
실제 True 인 것 중 모델이 True라고 예측한 비율이다. 재현율의 한계는 정밀도의 한계와 반대이다. 만약 재현율이 1에 한다면 이는 , 100명의 사람을 100다 유죄라고 해버리는 것이다. 그럼 재현율은 1으로 죄를 지은 사람을 모두 잡을 수 있겠지만, 문제는 무고한 사람을 유죄라고 할 수도 있게 된다.
이처럼 정밀도와 재현율은 Trade-off관계에 있다.
4. F1-SCORE
이를 보완하기 위한 방법인 f1-score(정밀도와 재현율의 조화평균)을 사용하는 것이다. f1-score는 재현율과 정밀도를 둘 다 고려하기 때문에 값이 낮다면 예측력이 낮은 모델이라고 할 수 있다.
5. ROC AUC
이는 0과 1 혹은 T/F 로 나누어진 binary classification에서 사용되는 평가기법이다. 다중분류 문제라면 이를 이진분류로 바꾼 후 구할 수 있다. 이 방법을 사용하면 임계값 설정에 대한 모델의 성능을 구할 수 있게 된다. 위양성률(FPR:False Positive Rate)는 위에서와 같이 False를 True로 판단한 경우를 말한다. 그럴 때 재현율은 높아지겠지만 위양성률도 같이 높아질 것이다. 따라서, 임계값을 정할 땐, 재현율은 최대화하고, 위양성률은 최소화는 임계값이 최적의 임계값이라고 할 수 있다.
AUC는 ROC커브의 아래 면적을 나타낸다. 면적이 넓을 수록 더 분리를 잘 한다는 것을 의미하므로 성능이 더 좋다. (False의 경우가 적다.) 반면, 직선에 가깝게 된다면 분류가 불분명한 것이다. 맞는데 아니라고 한 경우와 아닌데 맞다고 판단한 (False)의 경우가 많이 섞여 있어서 분류를 믿을 수 없다.
ROC 방법은 임계값을 움직일 때 얼마나 sensitive한지를 볼 수 있고, 믿을만한 판단인지는 AUC의 아래 부분이 넓은 것을 보고 잘 분류할 수 있는지 또, 믿을만한 판단인지를 결정할 수 있다.
cf)최적의 임계값 찾기
위양성률을 최소화 하고 재현율을 최대화하는 예측값을 가장 잘 반영하게 하는 임계값이 최적의 임계값이다. 그래서 (Recall-FPR)의 값이 가장 큰 값의 임계값을 선택한다. 위 데이터 프레임에서 두 비율의 차를 그래프화 하면 다음과 같다.
np.argmax(tpr-fpr)을 구하고, 그 때의 임계값이 0과 1을 나누게 하는 기준이 되는 것이다.
코드로 나타내면, 다음과 같다. 여기서 y_pred_proba 는모델에 학습 한 검증데이터의 model.predict_proba(X_val)[:,1]의 값이다.(1번째 열이 구하고자 하는 부분)