R에서 f1 점수를 계산하는 방법(예제 포함)


기계 학습에서 분류 모델을 사용할 때 모델 품질을 평가하는 데 사용하는 일반적인 측정항목은 F1 점수 입니다.

이 측정항목은 다음과 같이 계산됩니다.

F1 점수 = 2 * (정밀도 * 재현율) / (정밀도 + 재현율)

금:

  • 정확도 : 전체 긍정적 예측에 비해 긍정적 예측을 수정합니다.
  • 알림 : 전체 실제 긍정에 대한 긍정적 예측 수정

예를 들어, 로지스틱 회귀 모델을 사용하여 400명의 대학 농구 선수가 NBA에 선발될지 여부를 예측한다고 가정해 보겠습니다.

다음 혼동 행렬은 모델의 예측을 요약합니다.

모델의 F1 점수를 계산하는 방법은 다음과 같습니다.

정확도 = 참양성 / (참양성 + 거짓양성) = 120/ (120+70) = 0.63157

재현율 = 참양성 / (참양성 + 거짓음성) = 120 / (120+40) = 0.75

F1 점수 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

다음 예는 R에서 이 정확한 모델에 대한 F1 점수를 계산하는 방법을 보여줍니다.

예: R에서 F1 점수 계산

다음 코드는 주어진 로지스틱 회귀 모델에 대한 F1 점수(및 기타 측정항목)를 계산하기 위해 R의 캐럿 패키지에 있는 혼동 매트릭스() 함수를 사용하는 방법을 보여줍니다.

 library (caret)

#define vectors of actual values and predicted values
actual <- factor(rep(c(1, 0), times=c(160, 240)))
pred <- factor(rep(c(1, 0, 1, 0), times=c(120, 40, 70, 170)))

#create confusion matrix and calculate metrics related to confusion matrix
confusionMatrix(pred, actual, mode = " everything ", positive=" 1 ")

          Reference
Prediction 0 1
         0 170 40
         1 70 120
                                          
               Accuracy: 0.725           
                 95% CI: (0.6784, 0.7682)
    No Information Rate: 0.6             
    P-Value [Acc > NIR]: 1.176e-07       
                                          
                  Kappa: 0.4444          
                                          
 Mcnemar's Test P-Value: 0.005692        
                                          
            Sensitivity: 0.7500          
            Specificity: 0.7083          
         Pos Pred Value: 0.6316          
         Neg Pred Value: 0.8095          
              Accuracy: 0.6316          
                 Recall: 0.7500          
                     F1: 0.6857          
             Prevalence: 0.4000          
         Detection Rate: 0.3000          
   Detection Prevalence: 0.4750          
      Balanced Accuracy: 0.7292          
                                          
       'Positive' Class: 1

F1 점수는 0.6857 입니다. 이는 이전에 수동으로 계산한 값과 일치합니다.

참고 : F1 점수가 출력에 표시되도록 mode=”everything”을 지정해야 합니다.

F1 점수를 사용하여 여러 모델을 비교하는 경우 F1 점수가 가장 높은 모델은 관측치를 클래스로 가장 잘 분류할 수 있는 모델을 나타냅니다.

예를 들어, 다른 로지스틱 회귀 모델을 데이터에 적합하고 해당 모델의 F1 점수가 0.85인 경우 해당 모델의 F1 점수가 더 높기 때문에 더 나은 것으로 간주됩니다.

추가 리소스

R에서 로지스틱 회귀를 수행하는 방법
F1 점수와 정확도: 어느 것을 사용해야 합니까?

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다