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 점수와 정확도: 어느 것을 사용해야 합니까?