머신러닝 성능평가

leeebs·2022년 3월 6일
0
post-thumbnail

모델을 어떻게 평가할 것인지는 분류, 회귀 모델에 따라 다르다.
분류 모델은 0인지 1인지를 예측하는 것으로 정확히 예측한 비율 즉 정확도를 통해 모델 성능을 평가한다. 회귀 모델은 정확한 값을 예측하기는 어렵고, 예측값과 실제값의 차이인 오차를 줄여가는 방법으로 모델의 성능을 평가한다.

1. 회귀 모델 평가

  • SSE(Sum Squared Error)
  • MSE(Mean Squared Error)

MSE=1ni=1n(yiy^i)2\large MSE=\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2

  • RMSE(Root Mean Squared Error)

RMSE=1ni=1n(yiy^i)2\large RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2}

  • MAE(Mean Absolute Error)

MAE=1ni=1nyiy^i\large MAE=\frac{1}{n}\sum_{i=1}^{n}|y_{i}-\hat{y}_{i}|

  • MAPE(Mean Absolute Percentage Error)

MAPE=100ni=1nyiy^iyi\large MAPE=\frac{100}{n}\sum_{i=1}^{n}\left |\frac{y_{i}-\hat{y}_{i}}{y_{i}}\right |

  • SST(Sum Squared Total) : 평균과 실제값 사이의 오차
  • SSR(Sum Squared Regression) : 전체 오차 중 회귀식을 통해 잡아낸 오차
  • SSE(Sum Squared Error) : 전체 오차 중 회귀식이 잡아내지 못한 오차
    SST = SSE + SSR
  • R-Squared: SSR / SST

R2=1SSESST=1i=1n(yiy^i)2i=1n(yiyˉi)2\large R^2=1-\frac{SSE}{SST}=1-\frac{\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2}{\sum_{i=1}^{n}(y_{i}-\bar{y}_{i})^2}

  • R2는 최대값인 1에 가까울수록 좋음
  • R2=1, MSE=0이면 모델이 데이터를 완벽하게 학습한 것

2. 분류 모델 평가

1과 0을 정확하게 예측한 비율을 정확도(Accuracy), 1이라 예측한 것 중에서 실제 1인 비율을 정밀도(Precision), 실제 1인 것을 1이라고 예측한 비율을 재현율(Recall)

  • Confusion Matrix(혼동 행렬)

  • Accuracy(정확도)
    전체 중에서 positive와 negative를 정확히 예측한 비율로 가장 직관적으로 분류 모델 성능 확인 가능
    Accuracy=TP+TNTP+TN+FP+FN\large Accuracy = \frac{TP+TN}{TP+TN+FP+FN}

  • Precision(정밀도)
    positive로 예측한 것(FP+TP) 중에서 실제 positive인(TP) 비율로 예측 관점
    Precision=TPTP+FP\large Precision = \frac{TP}{TP+FP}

  • Recall(재현율)
    실제 positive(FN+TP) 중에서 positive로 예측한(TP) 비율로 양성을 양성으로 예측하는 것 민감도(Sensitivity)라고도 함
    Recall=TPTP+FN\large Recall = \frac{TP}{TP+FN}

  • Specificity(특이도)
    실제 negative(TN+FP) 중에서 negative로 예측한(TN) 것으로 음성을 음성으로 예측하는 비율
    Specificity=TNTN+FP\large Specificity = \frac{TN}{TN+FP}

  • F1-Score(조화평균)
    정밀도와 재현율의 조화평균
    F1=2×Precision×RecallPrecision+Recall\large F1 = \frac{2\times Precision\times Recall}{Precision+Recall}

profile
개발개발

0개의 댓글