딥러닝/기본개념

Score 함수

배우고 성장하는 청년 블로그 2021. 4. 9. 18:19

Confusion Matrix

Confusion Matrix

- 딥러닝 모델이 특정 데이터를 참이라고 예측하면 Positive, 거짓이라고 예측하면 Negative라고 설정한다.

- 특정 데이터가 참이면 True, 거짓이면 False이다.

 

- 여기서, 4가지 경우가 나올 수 있다.

 (1) 데이터가 참인데, 모델도 참이라고 예측한 경우: True Positive(TP)

 (2) 데이터가 참인데, 모델이 거짓이라고 예측한 경우: False Negative(FN)

 (3) 데이터가 거짓인데, 모델이 참이라고 예측한 경우: False Positive(FP)

 (4) 데이터가 거짓인데, 모델이 거짓이라고 예측한 경우: True Negative(TN)

   => 여기서 True는 데이터와 예측이 일치한 경우를 말한다.

   => 또한, Positive랑 Negative는 모델이 예측한 값을 말한다.

 

=> TP, FN, FP, TN을 비율(확률)이라고 생각하면 된다.

=> 또한, (TP + FN + FP + TN) = 1이다.

 

이렇게 나온 값을 통해 3가지 정도의 평가 지표를 만들 수 있다.

 

 (1) 정확도(Accuracy): 주어진 데이터를 모델이 얼마나 잘 맞췄는 지를 나타내는 지표이다.

 

Accuracy 식

    => 분모: 전체 값, 분자: 데이터와 예측한 값이 일치한 경우

    => 즉, 전체 중에서 모델이 정확하게 예측한 값이다.

 

 (2) 정밀도(Precision): 모델이 참이라고 예측한 값 중에서 실제 데이터에서 참인 값을 나타내는 지표이다.

 

Precision 식

    => 분모: 모델이 참이라고 예측한 값, 분자: 모델이 참이라고 예측하였는데, 그 데이터가 실제로 참인 경우

    => 즉, 모델이 참이라고 예측한 값들 중에서 실제로 그 데이터가 참일 확률이다.

 

 (3) 재현율(Recall): 실제로 참인 데이터 중에서 모델이 참이라고 예측한 값을 나타내는 지표이다.

 

Recall 식

      => 분모: 실제로 데이터가 참인 경우, 분자: 실제로 데이터가 참이면서 모델이 참이라고 예측한 경우

      => 즉, 실제 참인 데이터 중에서 모델이 참이라고 예측한 값이다.

 

 

 

- 위에서 구한 정밀도와 재현율 모두가 중요한 경우 어떻게 계산할까?

- 정밀도와 재현율을 조화평균으로 설정하여 만든 값인 F-Score 함수를 사용하면 된다.

 

 => 산술평균이 아니라 조화평균을 사용하는 이유

   - 산술평균은 한쪽 값만 커도 전체적으로 커지는 현상이 나타날 수 있다. (Outlier에 약하다)

   - 하지만, 조화평균은 어느 한쪽만 크다고 해서 전체적으로 커지지 않는다.

 

 - 간단한 예

집합 A

 (1) 집합 A에서 산술 평균을 구해보자

   => 위와 같이 100이라는 값으로 인해 한쪽으로 치우친 값이 나타나게 된다.

 

 (2) 집합 A에서 조화 평균을 구해보자

   => 대부분의 값인 1에 가까운 값으로 나오게 된다.

 

 

F-Score 함수

 => 딥러닝에서 평가지표로 많이 사용

 => 예측한 값이 제대로 예측이 되었는지 여부 판단에 사용

 

F1 Score 함수 식

 - 위에서 설명한 대로, 재현율과 정밀도를 조화평균하여 사용하게 된다.

 - 이로 인해, 재현율과 정밀도를 모두 고려한 지표가 나오게 된다.

 

- 위의 값을 일반화한 식은 아래와 같다.

F Score 함수 식

 => F-Score함수에서 (β = 1)인 경우를 F1-Score라고 한다.

 => (β = 1)인 경우는 재현율과 정밀도를 같은 비율로 중요하게 생각하는 경우에 사용된다.