← Back to list

Basitçe Accuracy, Precision, Recall ve F1 Score

Bir sınıflandırma probleminin/işleminin ne kadar başarılı olduğunu anlamak için çeşitli değerlendirme kriterleriyle sonuçlarımızı analiz…

Kahraman Kostas · 2020-06-27 11:45 · 1 claps · 3.5 min read
#machine-learning #evaluation #accuracy #f1-score
Open on Medium ↗
Wiki topics: EVAL · Evaluation & Benchmarks ML · Machine Learning EDU · Education & Learning 🏆 · Sports · General

Basitçe Accuracy, Precision, Recall ve F1 Score

Bir sınıflandırma probleminin/işleminin ne kadar başarılı olduğunu anlamak için çeşitli değerlendirme kriterleriyle sonuçlarımızı analiz etmemiz gerekir. Bu yazıda en basit şekilde bu kriterler nelerdir ve nasıl kullanılırlar sorularına ışık tutacağız.

Her şeyden önce problemimizi belirleyelim/yaratalım:

Hayali bir markete güvenlik şefi olarak alınmak üzere başvurduğunuzu düşünün. Marketin sahibi size, mahallede hırsızlık oranlarının çok yüksek olduğunu bunun için sezgileri kuvvetli birini aradıklarını söyleyerek bir uygulama yapmanızı istiyor. Bu işlem sonucunda sizin ne kadar başarılı olduğunuz gözlemlenecek. Uygulama şöyle:

Marketten çıkan 10 müşterinin hırsız olup olmadığını tahmin edeceksiniz. Bu Tahmin verilerini oluşturacak. Market çıkışında bu 10 müşterinin hepsinin üstü aranacak ve hırsız olup olmadıklarına bakılarak Gerçek veriler oluşturulacak. Daha sonra bu iki veri kıyaslanarak sizin ne kadar başarılı olduğunuz aanaliz edilecek.

Aşağıdaki resimde (Şekil 1)Gerçek ve Tahmin verilerini görüyorsunuz. Kırmız renk hırsızı, siyah ise normal müşteriyi gösteriyor.

Şekil 1- Tahmin ve Gerçek verilerin görselleştirilmesi (kırmızı: hırsız, siyah:normal).

Şekil 1- Tahmin ve Gerçek verilerin görselleştirilmesi (kırmızı: hırsız, siyah:normal).

Şekil 1 incelenirse bazı tahminlerimizde başarılı bazılarında ise başarısız olduğumuzu görürüz. Bu tahminleri 4 grup altında toplayabiliriz. Bunlar :

TP: Eğer bir kişiye hırsız dediniz ve o kişi hırsızsa True Positive. TN: Eğer bir kişiye hırsız değil dediniz ve o kişi hırsız değilse True Negative. FP: Eğer bir kişiye hırsız dediniz ve o kişi hırsız değilse False Positive. FN: Eğer bir kişiye hırsız değil dediniz ve o kişi hırsızsa False Negative.

Şekil 2- TP, TN, FP ve FN kavramlarının görselleştirilmesi.

Şekil 2- TP, TN, FP ve FN kavramlarının görselleştirilmesi.

Bu dört grubu, bir arada gösteren tabloya confusion matrix (Hata Matrisi) diyoruz. Tahminlerimizin confusion matrix üzerindeki dağılımını Şekil 3'de görebilirsiniz. Şekil ürerindeki sari daireler tahmin edilen müşterilerin numaralarını gösterir.

Şekil 3- Tahminlerimizin confusion matrix üzerindeki dağılımı

Şekil 3- Tahminlerimizin confusion matrix üzerindeki dağılımı

Değerlendirme yöntemleri arasında en yaygın olarak kullanılan yöntem, Accuracy (Doğruluk)’ dur.

Accuracy tüm doğru cevaplarınızın(TP ve TN), tüm cevaplarınıza (TP,TN,FP,FN) oranı olarak kısaca açıklanabilir ( (TP+TN)/(TP+TN+FP+FN)). Sık kullanılmasına rağmen accuracy’nin bir dezavantajı vardır: dengesiz dağılıma sahip gruplarda sağlıklı sonuç vermez.

şöyle bir örnekle açıklayalım: yine markette hırsızlığı tespit etmeye çalıştığımızı farzedelim. İnsanların pek azı hırsızdır. Diyelim ki çalınan ürünleri tespit eden bir alarm sistemimiz var ve ne yazık ki sistemimiz bozuk. 100 kişilik müşterilerimiz içerisinde yalnızca bir hırsız olsun. Sitemimiz bozuk olduğu için bu kişiyi tespit edemedik ancak günün sonunda başarımızı ağer accuracy ile ölçersek (Şekil 4'ü inceleyin):

Şekil 4 — Örnek için yaratılan confusion matrix ve Accuracy’nin hesaplaması

Şekil 4 — Örnek için yaratılan confusion matrix ve Accuracy’nin hesaplaması

işlemin sonucunda %99 oranında başarılı olduğumuz görülür. Aslında hiç fena değil 😊 Sistemimiz tamamen arızalı iken bile %99 başarı oranı sağlıyor ki bu tamamen yanıltıcı ve hiç istediğimiz bir şey değil.

İşte tam olarak bu yüzden accuracy dışında da çeşitli değerlendirme yöntemleri kullanılmaktadır. Bunlar şu şekilde tanımlanabilir:

Recall (Duyarlılık/Hassasiyet): doğru tespit ettiğimiz Pozitif sınıfların (TP, doğru tahmin ettiğimiz hırsızlar), Tüm pozitiflere oranı (bizim doğru tahmin etmemizden bağımsız olarak gerçekten hırsız olanlar, yani TP+FN). Şekil 5, İlk hücre bölü ilk sütun (TP/(TP+FN)).

Şekil 5- Örnek confusion matrix

Şekil 5- Örnek confusion matrix

Precision (Kesinlik) : doğru tespit ettiğimiz Pozitif sınıfların (TP, doğru tahmin ettiğimiz hırsızlar) tüm hırsız diye etiketlediğimiz/adlandırdığımız verilere oranı (TP+FP). Başka bir değişle bildiğimiz hırsızların sayısının, bildiğimiz hırsızlar ve yanlış alarmların toplamına oranı. Şekil 5, İlk hücre bölü ilk satır (TP/(TP+FP))

Burada precision/ recall arasındaki dengeden de bahsetmek gerekir. Yaptığınız işe göre precision/ recall arasında tercih yapmanız gerekebilir. Ek örnekle açıklayalım:

Market örneğinde, bazen hırsızların çaldıkları şeyleri çok iyi sarıp sarmaladıklarında, cihazımızı kandırabildiklerini düşünelim. Marketteki alarmımızın bir hassasiyet ayarı olsun, eğer bu ayarı yükseltirsek, sarıp sarmalanan cihazları da yakalıyor (gerçek hırsızlar yakalanıyor / TP artıyor). Ancak, bunun bir dezavantajı var, bu alarm bazen üzerinde çeşitli metal eşya taşıyan normal müşteriler için de ötüyor (yanlış alarmlar — FP yükseliyor). Yaptığımız ayar neticesinde, TP oranını yükselttik, FN sayısında bir değişiklik olmadı bu yüzden Recall değerimiz yükselmeye başladı. Diğer taraftan yaptığımız bu hassas ayar yanlış alarm sayısını yükselttiği için Precision değerimiz düşmeye başladı. **

Başka bir deyişle sistemimizin hassasiyetini (Recall)arttırmamız kesinlik (Precision) değerimizin düşmesine neden olabilir. **Burada önemli olan şey sisteminizin öncelikleridir. Önceliklerinizi analiz ederek bu dengeyi iyi ayarlamanız gerekir.

Accuracy’ye alternatif olabilecek bir başka değerlendirme yöntemi ise F1 Score’dur. F1 Score’un dengesiz dağılıma sahip verisetleri için kullanımı daha doğru olacaktır.

F1 Score Formülü

F1 Score Formülü

F1 Score, Precision ve Recall’un harmonik ortalamasıdır. Harmonik ortalamanın normal ortalamadan farkı, taraf güçsüzün yanında olmasıdır 😊. F1, yüksek değeri cezalandırır, böylece bu iki değerden yüksek olan düşük olanı manipüle etmesinin önüne geçer . Harmonik ortalama ve normal ortalamanın farkını sezmek için tabloyu inceleyebilirsiniz.

harmonik ortalama vs normal ortalama

harmonik ortalama vs normal ortalama


메타데이터
post_id
9f645a7e1013
slug
basitçe-accuracy-precision-recall-ve-f1-score-9f645a7e1013
url
https://medium.com/@kkostas/basit%C3%A7e-accuracy-precision-recall-ve-f1-score-9f645a7e1013
canonical_url
https://medium.com/@kkostas/basit%C3%A7e-accuracy-precision-recall-ve-f1-score-9f645a7e1013
author_url
https://medium.com/@kkostas
status
ok
fetched_at
2026-07-29 00:11:46