| 3 dk okuma | 22 okunma

Model başarısını nasıl ölçeriz? Accuracy, Precision, Recall

Bir modelin “iyi” olması, tek bir sayıyla ölçülemez; doğru metrik doğru problemi çözer.

Model başarısını nasıl ölçeriz? Accuracy, Precision, Recall

Bir makine öğrenmesi modeli eğittiğinde elde ettiğin ilk şey genellikle bir tahmin listesi olur; ancak bu tahminlerin ne kadar doğru olduğunu anlamadan modelin gerçekten işe yarayıp yaramadığını söylemek mümkün değildir. İşte bu noktada devreye değerlendirme metrikleri girer ve çoğu zaman yeni başlayanların en çok hata yaptığı yer de burasıdır: her problemi sadece accuracy (doğruluk) ile değerlendirmek.

Accuracy, en basit haliyle modelin doğru tahmin ettiği örneklerin oranını ifade eder ve ilk bakışta oldukça yeterli görünür. Ancak veri seti dengesiz olduğunda bu metrik yanıltıcı olabilir. Örneğin bir dolandırıcılık tespit sistemi düşün; işlemlerin %99’u normal, %1’i dolandırıcılık olsun. Model her şeye “normal” derse %99 accuracy elde eder, ama gerçekte hiçbir işe yaramaz.

Bu yüzden özellikle sınıflandırma problemlerinde daha detaylı metriklere ihtiyaç duyarız: precision ve recall.

Precision, modelin “pozitif” dediği tahminlerin ne kadarının gerçekten pozitif olduğunu ölçerken; recall ise gerçek pozitiflerin ne kadarını yakalayabildiğimizi gösterir. Bu iki metrik arasındaki fark, özellikle kritik sistemlerde hayati önem taşır.

Örnek: Temel metrik hesaplama

from sklearn.metrics import accuracy_score, precision_score, recall_score

y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 1, 0, 0, 1]

print("Accuracy:", accuracy_score(y_true, y_pred))
print("Precision:", precision_score(y_true, y_pred))
print("Recall:", recall_score(y_true, y_pred))


Bu kod parçası küçük bir örnek olsa da, gerçek projelerde modelin hangi açıdan güçlü ya da zayıf olduğunu anlamanı sağlar.

Precision ve recall arasında genellikle bir denge vardır ve bu denge problemin doğasına göre değişir. Örneğin bir spam filtreleme sisteminde, önemli bir e-postayı yanlışlıkla spam olarak işaretlemek ciddi bir problem yaratır; bu yüzden precision daha önemli olabilir. Öte yandan bir hastalık tespit sisteminde, hasta bir bireyi kaçırmak çok daha kritik olduğu için recall ön plana çıkar.

Bu iki metriğin dengeli bir kombinasyonu olarak F1-score da sıkça kullanılır ve özellikle tek bir metrikle performansı özetlemek istediğinde oldukça faydalıdır.

Örnek: F1-score

from sklearn.metrics import f1_score

print("F1 Score:", f1_score(y_true, y_pred))


Gerçek dünyada iyi bir mühendis, sadece model kuran değil, aynı zamanda doğru metriği seçebilen kişidir. Çünkü yanlış metrikle optimize edilen bir model, teknik olarak “başarılı” görünse bile iş problemini çözmeyebilir.

Gerçek Hayat

Bir kredi kartı dolandırıcılık sisteminde recall düşükse, dolandırıcılık işlemlerini kaçırırsın; precision düşükse, normal kullanıcıları gereksiz yere engellersin. Hangi hatanın daha kritik olduğuna göre metrik seçimi yapılır.


Model performansı tek bir sayı değildir; doğru problemi çözmek için doğru metriği seçmek gerekir.

Ertan Dağdelen

Yazan

Ertan Dağdelen

Brain & Youth Information Worker, Author, .Net, Flutter, AJAX, Arduino & Esp32, Pcb, 3D, Galatasaray, Gemini

Bu yazıyı paylaş