머신러닝 모델의 테스트 평가 지표

1. test_loss

모델이 테스트 데이터에 대해 예측한 결과와 실제 값 간의 차이를 측정하는 **손실 함수(loss function)**가 반환하는 값이다. 손실 값이라고도 한다.

손실(loss)함수는 문제의 유형(회귀, 분류)에 따라 달라진다.

모델이 얼마나 잘못 예측했는지를 나타내며, 이 값이 낮을수록 모델의 예측결과가 실제 값과 가까운 것을 의미한다. 모델의 학습 및 테스트 성능을 정량적으로 평가하는 기본지표이나 모델의 실제 성능을 직접적으로 평가하기에는 부족할 수 있어 다른 지표와 함께 사용된다. 허나 기본적으로 이 손실값을 줄이는 것이 학습의 목표이다.

2. test_accuracy

테스트 데이터에서, 전체 예측한 샘플 중 모델이 정확히 예측한 샘플의 비율이다. 모델이 얼마나 올바른 예측을 했는지 나타낸다.

여기서 전체 예측한 샘플이란, TP(True Positive), TN(True Negative), FP(False Positive), FN(False Negative) 모두를 합한 값이다.

그런데 데이터가 불균형하다면 정확히 예측하는 것은 의미없다. 예를 들어 99%의 데이터가 A라면, A를 한만 맞춰도 정확도는 99%가 된다. 따라서 데이터가 균형 잡혀있는게 확실할때 적합한 지표이다.

3. test_f1

정밀도(Precision)과 재현율(Recall)의 조화평균(Harmonic Mean)을 나타낸다.

F1=2⋅Precision+RecallPrecision⋅Recall​

조화평균은 (역수의 산술평균)의 역수이다. 우선 역수를 취해 산술평균을 구하고, 다시 역수를 취한다. 조화평균은 속력의 평균을 구할때 사용된다. 속력의 평균을 구하기 위해선 시간의 평균이 먼저 필요한데, 시간을 구하기 위해선 우선 거리를 속력으로 나눠야 하기 때문이다.

정밀도(Precision)은 모델이 양성(Positive)으로 예측한 케이스 중 실제로 양성인 비율을 말한다.

정밀도는 실제로는 음성(Negative)인데 양성으로 예측한 경우(FP; False Positive)을 줄이는데 목적을 둘때 사용된다.

예를 들면, 잘못된 예측이 치명적인 문제(의사의 잘못된 진단을 줄이는데 목적)에서 주로 사용된다.

재현율(Recall)은 실제로 양성인 값들 중 모델이 정확히 양성으로 예측한 비율을 의미한다.

달리 말하면, 위의 정밀도와는 반대로 실제로는 양성(Positive)인데 모델이 이를 음성(Negative)로 예측한 경우(FN; False Negative)를 줄이는데 목적을 둔다.

예를 들면, 놓치면 안되는 케이스들(실제 환자를 놓치지 않고 진단하는게 목적)에서 주로 사용된다.

정밀도와 재현율은 서로 트레이드오프 관계에 있다. 따라서 목적에 따라 FP와 FN을 얼마나 허용할지를 결정해야만 한다.