Sınıflandırma Problemlerinde Accuracy mi yoksa Recall mu ?

Ömer Gencay ÜNLÜ
DataBulls
3 min readNov 20, 2020

--

Gerçek hayatta sınıflandırma problemlerine, yani sonucun 1 ve 0 olma olasılığına ilişkin tahmin yapacağımız Makine Öğrenmesi modelleri kurmamız istenildiğinde, accuracy skorumuzun yüksek çıkması her zaman iyi değildir. Daha doğrusu yüksek bir accuracy skoru, sizin risk iştahınız ile uyuşmuyorsa, çok da anlamlı olmayabilir.

Diyelim ki, Titanik’teki 179 yolcuya ait,

‘Pclass’, ‘Name’, ‘Sex’, ‘Age’, ‘SibSp’, ‘Parch’, ‘Ticket’, ‘Fare’, ‘Cabin’, ‘Embarked’

değişkenleri elinizde ve bunlardan hayatta kalanları 1, ölenleri 0 olarak etiketleyerek bulmak istiyorsunuz. Yani, yolcuların kaza sonucunda hayatta kalıp kalmama durumunu tahmin etmeye çalışıyorsunuz.

Modelimizi geliştirdik ve accuracy skorumuz 0.84 olarak geldi. Yani geliştirdiğimiz model, hayatta kalan ve ölenlerin %84'ünü doğru tahmin ediyor.

Modelimiz burada yeterli görüp sonuçlarımızı kabul edebiliriz. Bu modelden beklenenin karşılanması ile alakalı bir durumdur. Diğer yandan, ilk bakışta çok iyi gözüken bu skor, bizim nereden baktığımıza göre anlamını da yitirebilir. Ne demektir bu?

Öncelikle 0.84 accuracy değeri aldığımız modelin confusion matrix rakamlarına bir bakalım. Tabii önce confusion matrix nedir, hatırlamakta fayda var:

İki sınıflı bağımlı değişkene ilişkin Confusion Matrix

True positives: Doğruya doğru demek. DOĞRU, yani Actual = 1 ve Predicted= 1

True Negatives: Yanlışa yanlış demek DOĞRU, yani Actual= 0 ve Predicted= 0

False Negatives: Doğruya yanlış demek. YANLIŞ, yani Actual 1, ama Predicted= 0

False Positives: Yanlışa doğru demek. YANLIŞ, yani Actual=0, ama Predicted=1

Titanik’de durum şu şekildedir:

Sağ kalanların 91'ini, ölecek olanların ise 58'ini doğru tahmin edebilmekte olduğumuz görülmektedir.

Peki bu rakamlar üzerinden başka ne tür yorumlar yapılabilir?

  • Accuracy: Modelde doğru tahmin ettiğimiz alanların toplam veri kümesine oranı ile hesaplanmaktadır. Bizim modelimizde de 0.84 çıkan değerdir (Yukarıda da bahsedilmiştir). Yani kısaca veri seti içinde doğru tahmin ettiklerimizin oranıdır.
Accuracy Skor Hesaplama
  • Precision: Doğru olarak tahmin ettiğimiz sağ kalanların, tüm doğru tahmin sayımız içindeki oranını gösterir. Örneğimizde 0.61'dir.
Precision Skor Hesaplama
  • Recall: Bu oran ise kısaca sağ kalan olarak doğru tahmin ettiklerimizin, tüm sağ kalan dediklerimiz, yani 1 olarak tahmin ettiklerimiz içindeki oranını göstermektedir. Modelimizde bu oran 0.84 çıkmıştır.
Recall Skor Hesaplama

Baktığımızda hayatta kalacak diye tahmin ettiğimiz toplam 108 kişiden, 91'ini doğru tahmin etmişiz, ancak 17 kişiyi doğru tahmin edemediğimiz için muhtemelen öldüler :). İşte tam da bu nokta, sınıflandırma problemlerinde çok önemlidir.

Sonuç

Önünüzde iki seçenek var:

  • Modeli kurduk ve hayata geçirme aşamasına geldik diyelim, yukarıdaki 17 kişiyi göz ardı ederek, zaten benim accuracy skorum yüksek diyebiliriz.
  • Diğer yandan modelin bu 17 kişiyi nasıl kaçırdığına yönelik kafa yorarak, mümkün olan en yüksek accuracy ve en düşük kayıp seviyesine getirmeye çalışabiliriz.

Buna risk iştahımız yön verecektir…

--

--