Python'da f1 puanı nasıl hesaplanır (örnek dahil)
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, Python’da tam olarak bu model için F1 puanının nasıl hesaplanacağını gösterir.
Örnek: Python’da F1 puanını hesaplama
Aşağıdaki kod, belirli bir öngörülen değerler ve gerçek değerler dizisi için F1 puanını hesaplamak amacıyla Python’daki sklearn paketinin f1_score() işlevinin nasıl kullanılacağını gösterir.
import numpy as np from sklearn. metrics import f1_score #define array of actual classes actual = np. repeat ([1, 0], repeats=[160, 240]) #define array of predicted classes pred = np. repeat ([1, 0, 1, 0], repeats=[120, 40, 70, 170]) #calculate F1 score f1_score(actual, pred) 0.6857142857142857
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_score() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.
F1 puanlarının kullanımına ilişkin notlar
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 o modelin F1 puanı 0,75 ise o modelin F1 puanı daha yüksek olduğu için daha iyi kabul edilecektir.
Ek kaynaklar
Python’da Lojistik Regresyon Nasıl Gerçekleştirilir
Python’da Karışıklık Matrisi Nasıl Oluşturulur
Python’da dengeli hassasiyet nasıl hesaplanır
F1 Puanı ve Doğruluk: Hangisini Kullanmalısınız?