열정 실천

[AI] 004. 머신러닝의 성능평가 (회귀-MAE,MSE,RMSE / 분류 - 심플 카운팅, ROC 곡선) 본문

CS/AI

[AI] 004. 머신러닝의 성능평가 (회귀-MAE,MSE,RMSE / 분류 - 심플 카운팅, ROC 곡선)

구운오니 2024. 11. 12. 15:45
728x90
회귀 모델의 성능 평가 

 


- MAE (Mean Absolute Error) : 모델의 예측 값과 실제 값 사이의 절대적인 차이를 평균한 값

- MSE (Mean Squared Error) : 예측 값과 실제 값의 차이를 제곱한 후 평균한 값

- RMSE (Root Mean Squares Error) : MSE의 값에 제곱근을 씌운 값으로 산출된 오차의 단위가 실제 값과 동일

 

 

MAE, MSE, RMSE는 모두 모델의 예측 성능을 평가하는 데 사용되는 대표적인 손실 함수이다. 

 

이 3개의 식에서 y는 실제 값, y'는 예측 값, N은 데이터의 총 개수를 뜻한다. 

 

이 중 MSE는 가장 많이 사용되는 가장 직관적인 손실 함수이다. 오차를 제곱하기 때문에 큰 오차에 가중치를 부여한다.  즉, 작은 오차보다는 큰 오차가 모델 성능에 더 많은 영향을 주도록 하여 큰 오차를 줄이도록 유도하는 것이다. 하지만 이상치(outlier)에 매우 민감하기 때문에 이상치가 많은 데이터에서는 적합하지 않을 수 있다. 

 

 

 

 

분류 모델의 성능 평가 

 

 

1. 심플 카운팅 : 제대로 분류된 샘플의 개수를 카운팅

 

- TP (True Positive) : 실제 Pos인 샘플을 Pos로 예측 

- FP (False Positive) : 실제 Neg인 샘플을 Pos로 예측 

- TN (True Negative) : 실제 Neg인 샘플을 Neg로 예측 

- FN (False  Negative) : 실제 Pos인 샘플을 Neg로 예측 

 

 

💁‍♀️ 자~ 코로나 검사를 예로 들어, 모델의 예측 결과를 평가하는 TP, FP, TN, FN을 살펴보자~~~면!

cf. 양성(감염) - 음성(비감염)

 

 

  • TP: 감염자를 정확히 감염자로 판단함 (아주 굿!)
  • FP: 비감염자를 양성으로 잘못 판단함 (oh no 불필요한 조치 유발하겠고만)
  • TN: 비감염자를 정확히 음성으로 판단함 (이것도 굿굿)
  • FN: 감염자를 음성으로 잘못 판단함 (Oh No!!!!!!! 전염 확산 되겠어!!!!!!)

 

 

  • 민감도 : 실제로 코로나에 감염된 환자(양성)를 정확히 양성으로 예측하는 비율 (높을 수록 좋겠군!)
  • 정밀도 : 양성으로 예측된 사람들 중 실제로 코로나에 감염된 사람의 비율 (낮으면 불필요한 조치를 줄이겠군!)
  • 특이도 : 실제로 감염되지 않은 사람(음성)을 음성으로 정확하게 예측하는 비율 (얘도 높을 수록 좋겠어!)
  • 정확도 : 전체 검사 대상 중에서 코로나 감염 여부를 정확하게 예측한 비율

💁‍♀️ 어때유? 한 방에 이해가쥬?

 

 

 

2. ROC 커브 

ROC(Receiver Operating Characteristic)

이 그래프의 곡선은 전형적인 ROC 곡선이다.

ROC 곡선 아래의 영역 면적을 AUC(Area Under a ROC Curve)라고 하며 이 AUC가 클수록 모델의 성능이 좋다고 본다. 

 

이 ROC커브의 

Y축은 True Positive Rate인 특이도 

X축은 False Positive Rate인 민감도를 나타낸다. 

(민감도 + 특이도 = 1, 민감도 = 1 - 특이도, 특이도 = 1 - 민감도)

728x90