Değerlendirme Ölçütleri

FEF3001 Yapay zekaya giriş - Ders3

Alper Yılmaz

2024-07-11

Değerlendirme ölçütleri / Performance Metrics

  • Sınıflandırma değerlendirme (Classification)
  • Regresyon değerlendirme (Regression)

Sınıflandırma ve Regresyon (Classification vs regression)

Source

Source

Sınıflandırma ve Regresyon

Source

Source

Fit

Source

Training

Source

Training / Test

Source

Classification Performance Metrics

Bir Sınıflandırma modeli oluşturulduktan sonra bu model ile yapılan tahminlerin ne kadar doğru olduğuna dair değerlendirme yapılması gereklidir.

Aşağıda verilen confusion matrix (karşılaştırma matrisi) bir sınıflandırma modeline dair gerçekleşen durumları ve bu durumlara dair tahminleri verilmiştir.

Actual (Gerçek)
True (Doğru) False (Yanlış)
Prediction (Tahmin) Pozitif TP FP
Negatif FN TN

TP : True Positive, FP : False Positive, FN : False Negative, TN : True Negative

True ve false değeri bu modele dair gerçek sonuçları, positive ve negative ise modele dair tahminleri göstermektedir.

Classification Performance Metrics

Tümör ve Hasta örnekleri ele alırsak, Normal örnekler negatif olarak, Tümör örnekleri de pozitif olarak değerlendirilebilir.


TP : Gerçekte Tümör olan hastayı (true/pozitif) Tümör olarak tahmin etmek (pozitif).


FP : Gerçekte Normal olan örneği (false/negatif) Tümör olarak tahmin etmek (pozitif). — > Type 1 Error


FN : Gerçekte Tümor olan örneği (true/pozitif) Normal olarak tahmin etmek (negatif). — > Type 2 Error


TN : Gerçekte Normal olan örneği (false/negatif) Normal olarak tahmin etmek (negatif).

Metrics

Accuracy (Doğruluk) : Doğru tahminlerin toplam veri kümesine oranıdır.

Precision (Kesinlik): Pozitif olarak tahmin edilen verilerin kaçının gerçekten pozitif olduğunu gösterir.

Recall or Sensitivity (Duyarlılık): Geliştirilen modelin pozitif olanların kaçını yakaladığını gösterir.

F1 Score (F1 Skoru): F1 score, precision ve recall değerlerinin harmonik ortalamasıdır. Sınıf dağılımı benzer olduğunda accuracy kullanılabilirken, dengesiz veri setleri söz konusu olduğunda F1 skor daha iyi bir metriktir.

ROC Curve (ROC Eğrisi): Yanlış pozitif oranı ve gerçek pozitif oranı göz önünde bulundurarak x ekseninde ve y ekseninde 0’dan 100’e kadar olan değerlerin üzerinde bir eğri oluşturulur. Bu eğrinin altında kalan alana Area Under Curve (AUC) adı verilir. Bu alanın büyük olması modelin başarılı olduğunu gösterir. Grafikte yer alan mavi çizgi; ne kadar geniş bir alan kaplıyorsa modelin tahmin başarısı o kadar yüksek, ortadaki kesikli çizgiye ne kadar yakınsa modelin başarı oranı o kadar düşüktür.

ROC Curve

Why too many metrics?

Neden birden fazla metrik kullanılıyor, bir örnek ile görelim. Yandaki durum için, 8 Normal ve 2 Tümör olan bir durumda, her örnek için Normal diye tahminde bulunursak. True Negatif (TN) sayısı 8 ve False Negatif (FN) sayısı ise 2 olmaktadır.

Bu durumda, doğruluk, accuracy

ACC = (TP + TN) / (TP + FP + TN + FN)

formülünden dolayı 8 / 10 = 0.8 yani %80 olarak hesaplanmaktadır.

Fakat, Duyarlılık/Sensitivity

SENS = TP / (TP + FN)

formülünden 0 çıkmaktadır.

Actual Label Prediction
Tumor Normal
Tumor Normal
Normal Normal
Normal Normal
Normal Normal
Normal Normal
Normal Normal
Normal Normal
Normal Normal
Normal Normal

Example

100 kişilik bir çalışmada, 25 Tümör hastası ve 75 Normal birey bulunmaktadır. Normal (negatif) olan 70 kişi Normal olarak tahmin edilmştir (TN: True Negatif). 5 kişi Normal olduğu halde Tümör olarak tahmin edilmiştir (FP: False pozitif). Gerçekte Tümör olan 15 kişi Tümör olarak tahmin edilmiştir (TP: True pozitif). Son olarak, 10 kişi Tümör olduğu halde Normal olarak tahmin edilmiştir (FN: False negatif). Bu duruma göre Confusion Matrix aşağıdaki gibi hesaplanacaktır.

Actual
True False
Tahmin Pozitif TP (15) FP (5)
Negatif FN (10) TN (70)

Example

Bu durumda,

Doğruluk (Accuracy) ACC = (TP + TN) / (TP + TN + FN + FP) = 0.85

Duyarlılık (Sensitivity) SENS = TP / (TP + FN) = 0.60

Kesinlik (Precision) PREC = TP / (TP + FP) = 0.75

F1 Skor = 2 x (PREC x SENS) / (PREC + SENS) = 0.6667

Summary

Source

Python code

from sklearn.metrics import confusion_matrix

actual    = [1, 0, 1, 1, 0, 0, 1, 0, 1, 1]
predicted = [0, 1, 1, 1, 1, 0, 1, 1, 0, 1]

print("\nConfusion matrix")
conf_mat = confusion_matrix(actual, predicted) 

print(conf_mat)

Confusion matrix
[[1 3]
 [2 4]]

Regression Performance Metrics

Following metrics can be used to measure the performance of regression model output.

  • Mean Error (ME)
  • Mean Absolute Error (MAE)
  • Mean Squared Error (MSE)
  • Root Mean Squared Error (RMSE)

There are much more advanced metrics but we’ll learn only essental ones

Mean Error (ME)

\[ \text{ME} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i) \]

\(y_i\): Actual value, \(\hat{y}_i\): predicted value, n: number of observations

Mean Absolute Error (MAE)

Adding negative results is not right when using ME. Let’s take care of it.

\[ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| \]

Mean Squared Error (MSE)

\[ \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]

Please note that squaring the error with punish the model more. Also, squaring a difference will take care of negative sign.

Root Mean Squared Error (RMSE)

\[ \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} \]