R'de f1 puanı nasıl hesaplanır (örnekle)


Makine öğreniminde sınıflandırma modellerini kullanırken model kalitesini değerlendirmek için kullandığımız yaygın bir ölçüm F1 puanıdır .

Bu metrik şu şekilde hesaplanır:

F1 puanı = 2 * (Hassaslık * Geri Çağırma) / (Hassaslık + Geri Çağırma)

Altın:

  • Doğruluk : Pozitif tahminleri toplam pozitif tahminlere göre düzeltin
  • Hatırlatma : Pozitif tahminlerin toplam gerçek pozitiflere göre düzeltilmesi

Örneğin, 400 farklı üniversite basketbol oyuncusunun NBA’e alınıp alınmayacağını tahmin etmek için lojistik regresyon modeli kullandığımızı varsayalım.

Aşağıdaki karışıklık matrisi, modelin yaptığı tahminleri özetlemektedir:

Modelin F1 puanını şu şekilde hesaplayabilirsiniz:

Doğruluk = Doğru Pozitif / (Doğru Pozitif + Yanlış Pozitif) = 120/ (120+70) = 0,63157

Hatırlama = Doğru Pozitif / (Doğru Pozitif + Yanlış Negatif) = 120 / (120+40) = 0,75

F1 puanı = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

Aşağıdaki örnek, R’deki bu model için F1 puanının nasıl hesaplanacağını gösterir.

Örnek: R’de F1 puanının hesaplanması

Aşağıdaki kod, belirli bir lojistik regresyon modeli için F1 puanını (ve diğer ölçümleri) hesaplamak amacıyla R’deki caret paketindeki kafa karışıklığıMatrix() işlevinin nasıl kullanılacağını gösterir:

 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 puanının 0,6857 olduğunu görüyoruz. Bu, daha önce manuel olarak hesapladığımız değerle eşleşiyor.

Not : F1 puanının çıktıda görüntülenmesi için mode = “everything” belirtmemiz gerekir.

Birden fazla modeli karşılaştırmak için F1 puanını kullanırsanız, en yüksek F1 puanına sahip model, gözlemleri sınıflara göre en iyi şekilde sınıflandırabilen modeli temsil eder.

Örneğin verilere başka bir lojistik regresyon modeli uydurursanız ve bu modelin F1 puanı 0,85 ise o modelin F1 puanı daha yüksek olduğu için daha iyi kabul edilecektir.

Ek kaynaklar

R’de lojistik regresyon nasıl gerçekleştirilir
F1 Puanı ve Doğruluk: Hangisini Kullanmalısınız?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir