모델 성능 평가 척도
1. Confusion matrix
| 예측값 | ||
Y(positive) | N(negative) | ||
실제값 | Y | TP(true positive) | FN(false negative) |
N | FP(false positive) | TN(true negative) |
실제값: 데이터의 실제 카테고리
예측값: 모델이 예측한 데이터의 카테고리
1) Accuracy(정확도)
TP + TN / TP+FN+FP+TN
한계 :
- 2class 문제에서 class yes에 해당하는 데이터는 9900건, class no에 해당하는 데이터는 100건이 존재할 경우
모델이 모든 데이터를 class yes로 예측할 경우, class no를 예측하지 못했음에도 불구하고 정확도는 높게 나타난다.
2) Precision(정밀도)
Precision(p) = TP / TP+FP
모델이 검출한 데이터 중 올바르게 검출된 데이터의 비율
3) Recall(재현율)
Recall(r) = TP / TP+FN
실제 해당 데이터 중 모델이 올바르게 검출한 데이터의 비율
4) Precision-recall plot
모델의 성능을 측정할때, 정밀도(precision)과 재현율(recall)의 균형을 유지해야 한다.
- 정밀도가 높다 : 실제 데이터를 잘 예측한 비율
- 재현율이 낮다: 실제 데이터를 잘못 예측한 비율
: 둘다 높게 균형을 이루어서 나타나야 좋다고 할 수 있음!!!
5) F-Measure
- Precision과 Recall은 모델의 성능을 객관적으로 판단하기에 부족하다.
- 두 수치의 trade-off 관계를 통합해 하나의 수치로 정확도를 도출할 수 있다.
F-measure(F) = 2rp / r+p = 2TP / 2TP + FN + FP
2. Learning curve(학습곡선)
- 모델의 성능을 시각화하여 확인 가능
- 데이터 셋의 크기에 따른 오류의 변화를 확인할 수 있다.
- Training set의 크기가 매우 작을 경우 오류는 적겠지만, 크기가 커지면 오류도 증가하게 된다.
- 반면, cross validation의 경우 적은 데이터셋으로는 오류가 많이 발생하는 반면, 샘플의 크기가 커질수록 일반화하면서 오류는 감소하게 된다.
1) underfitting의 경우 learning curve
- holdout의 경우: Training set의 크기가 커질수록 오류 증가 ( 어느 수치 이상은 증가하지 않음)
- Cross validation의 경우: Training set의 크기가 커질수록 오류 감소 (어느 수치 이하로 감소하지 않음)
2) overfitting의 경우 learning curve
- 오차 차이(gap)이 좁혀지지 않음: 많은 데이터 셋을 사용할 수록 차이가 좁혀진다.
- 과적합 모델의 경우 더 많은 데이터를 수집하여, 사용할 필요가 있다.
3. ROC(Receiver Operating Characteristic) curve
- ROC curve의 y축에 TP, x축에 FP 수치를 입력해 두 수치의 균형을 살펴볼 수 있다.
- 각 모델의 성능은 ROC curve상의 한점으로 표현된다.
1) Sensitivity (민감도, TPR, True Positive Rate)
실제 Y 클래스 데이터 중 모델이 예측한 Y 클래스 데이터의 비율
TP/P = Recall
2) Specificity (특이도, TNR, True Negative Rate)
실제 T 클래스 데이터 중 모델이 예측한 N 클래스 데이터의 비율
1-FPR
3) 1-Specificity (FPR, False Positive Rate)
실제 N 클래스 데이터 중 모델이 Y 클래스로 예측한 데이터의 비율
FP/N
4)
- 모델이 Y 클래스를 정확하게 예측할 수록 Sensitivity, TPR 값이 높아진다.
- ROC curve 아래 면적인 AUC(Area Under Curve)가 1에 가까워질 수록, 모델이 Y를 예측하는 정확도가 높다.
'Study > 파이썬으로 데이터 주무르기' 카테고리의 다른 글
[Linear regression] 단일선형회귀분석 실습 (0) | 2018.07.09 |
---|---|
[Linear regression] 단일선형회귀분석이란? (0) | 2018.07.09 |
[모델 성능 평가 척도] 유방암 진단 데이터(Breast Cancer) (0) | 2018.07.09 |
[모델 성능 평가 척도] Residuals / MSE / RMSE (0) | 2018.07.09 |
[데이터 분석] 데이터 셋의 구성과 검증 방법 (0) | 2018.07.09 |
댓글