Roc Eğrisi ve Eğri Altında Kalan Alan (Auc)

Bu yazımda oluşturduğumuz sınıflandırma modellerinin performansını nasıl değerlendirebileceğimizi ROC ve AUC eğrilerinden bahsederek açıklamaya çalışacağım. Keyifli okumalar dilerim :)

Konunun daha net anlaşılabilmesi için bir sınıflandırma modeli oluşturup onun üzerinden performans metriklerini açıklamaya çalışacağım. Modelimizde her biri 30 adet özellik içeren ve 569 örnekten oluşan Wisconsin Üniversitesi göğüs kanseri veri setini kullanacağız. Kullanılan veri seti 569 adet örnek içermektedir. Her bir veri örneği için 30 tanımlayıcı özellik ve bir adet teşhis sınıfı olmak üzere toplam 31 özellik bulunmaktadır. 30 adet tanımlayıcı özellik, göğüste görülen kitle resimlerinin sayısallaştırılması ile elde edilen dokunun çapı, şekli, pürüzsüzlüğü, yüzey alanı gibi verilerden oluşmaktadır. 30 adet özelliğin 10 tanesi tümör hücresinin çekirdeği üzerinden direkt olarak ölçümlenmiş, 20 tanesi ise bunlara bağlı olarak hesaplanmış sayısal değerlerdir. 569 verinin sınıf dağılımı ise 357 iyi huylu, 212 kötü huylu şeklindedir. Verimizi görüntüleyecek olursak:

Image for post
Image for post
Image for post
Image for post

Classımız “diagnosis” sütunu olacaktır. M ile kötü huylu tümör , B ile iyi huylu tümörler ifade edilmektedir. Fakat burada label encoder ile bu değerleri numerik yapmamız gerekmekte. Kötü huylu tümöre 1, iyi huylu tümöre 0 atadık. Diagnosis sütunumuz artık 0 ve 1’lerden oluşmakta.

Veri setimiz üzerinde birkaç değişiklik yaptıktan sonra sınıflandırma modelimizi oluşturmaya başlayabiliriz.

Image for post
Image for post
Image for post
Image for post

Şimdi oluşturmuş olduğumuz model üzerinde performans değerlendirme metriklerini uygulayacağız. Roc eğrisine geçmeden konunun daha net anlaşılması ve bütünlüğün sağlanması açısından aşağıdaki kavramları açıklamamda fayda var:

· Karışıklık matrisi (Confusion Matrix)

· TP, FN, TN, FP tanımları

· Tip 1 ve Tip 2 hataları

· Recall, Precision, F-Score’dan hesaplanan istatistikler

1. Confusion Matrix (Hata Matrisi)

Image for post
Image for post

Confusion Matrix, veri setindeki var olan durum ile sınıflandırma modelimizin doğru ve yanlış tahminlerinin sayısını tablo olarak göstermektir. Şöylede açıklayabiliriz; makine öğrenimi modellerinden tahmin edilen ve gerçek sınıf etiketlerini göstermek için, karışıklık matrisi kullanılır.

TP, FN, TN, FP tanımları

ROC eğrilerinin anlaşılması için aşağıdaki ifadelerin ne anlama gelindiğinin bilinmesi gerekmektedir.

TP — Gerçek Pozitif (True Pozitive ) : Model, pozitif sınıfı doğru olarak pozitif bir sınıf olarak öngördü.

FP — Yanlış Pozitif (False Positive ) : Model, negatif sınıfı yanlış, pozitif bir sınıf olarak öngördü.

FN — Yanlış Negatif (False Negative): Model, pozitif sınıfı yanlış, negatif sınıf olarak öngördü.

TN — Gerçek Negatif (True Negative): Model, negatif sınıfı doğru olarak negatif sınıfı öngördü.

Modelimizde ortaya çıkan karışıklık matrisi şu şekilde:

Image for post
Image for post

2.Recall, Precision, F-Score

Recall (Hatırlama) : Tüm pozitif sınıfların dışında, kaç örnek doğru tanımlandı?

Hatırlama = TP / (TP + FN)

Precision (Kesinlik) : Öngörülen tüm olumlu örneklerden, kaçının doğru tahmin edildiği.

Hassas = TP / (TP + FP)

Image for post
Image for post

F-Score: Precision ve Recall’dan, F-Measure hesaplanır ve metrik olarak kullanılır.

F-Puanı = (2 * Geri Çağırma * Hassasiyet) / (Geri Çağırma + Hassasiyet)

Image for post
Image for post
F-Score

Modelimizde çıkan sonuçlar aşağıdaki gibidir:

Image for post
Image for post

3. ROC Eğrileri ( ROC Curve )

Makine öğrenmesinde performans ölçümü önemli bir konudur. Bu yüzden bir sınıflandırma probleminin performansının değerlendirilmesinde AUC — ROC eğrisinden yararlanırız. Herhangi bir sınıflandırma modelinin performansını kontrol etmek için en önemli değerlendirme ölçütlerinden biridir. Özellikle dengesiz veri setlerinin bulunduğu durumlarda, makine öğrenmesi algoritmalarının performansını değerlendirmek için en yaygın kullanılan ölçümlerden biridir. Ve modelin tahmininde ne kadar iyi olduğunu açıklar.

ROC farklı sınıflar için bir olasılık eğrisidir. Tipik bir ROC eğrisinde X ekseninde Yanlış Pozitif Oran (FPR) ve Y ekseninde Gerçek Pozitif Orana (TPR) vardır.

ROC eğrisi kullanmanın yararlarından birkaçı:

  • Farklı modellerin eğrileri genel olarak veya farklı eşikler için doğrudan karşılaştırılabilir.
  • Eğri altındaki alan (AUC) model becerisinin başka bir deyişle model performansının bir özeti olarak kabul edilebilir.
  • Genellikle, başarılı modeller arsanın sol üst kısmına eğilen eğriler ile temsil edilir.

AUC: ROC Eğrisi Altındaki Alan

Günümüzde en yaygın kullanılan ölçütlerden biri AUC-ROC (Eğri Altındaki Alan — Alıcı Çalışma Karakteristikleri) eğrisidir. AUC, “ROC Eğrisi altındaki alan” anlamına gelir. Bu alanın kapsamı AUC’dir. Kapsanan alan ne kadar büyükse, makine öğrenme modelleri o kadar iyi verilen sınıfları ayırt etmede daha iyidir. AUC için ideal değer 1'dir.

Image for post
Image for post

Modelimizin ROC eğrisi ise aşağıdaki gibidir:

Image for post
Image for post
Image for post
Image for post

4. Tip1 ve Tip2 Hataları

Burada tanımlanabilecek iki tür hata vardır:

Tip 1 Hatası: Model, örneğin bir Pozitif sınıf olduğunu öngördü, ancak yanlış. Bu Yanlış Olumlu (FP).

Tip 2 Hatası: Model, Örneği Negatif sınıf olarak öngördü, ancak yanlış mı? Bu Yanlış Negatif (FN).

Threshold kesiştiğinde yani iki dağılım üst üste geldiğinde tip1 ve tip2 hatası meydana gelir.

Image for post
Image for post

Bahsetmiş olduğum yöntemler sınıflandırma modellerinin başarı hesaplamalarında kullanılmaktadır.

Roc →Doğru pozitiflerin yanlış pozitiflere olan kesri. Bu iki metriği X ve Y eksenlerine yerleştirerek çizginin altında kalan alanı hesaplamaya çalışıyoruz. (AUC-Area Under Curve)

AUC → Çizginin altında kalan alan ne kadar büyükse modelin başarı oranı o kadar yüksek demektir.

Image for post
Image for post

Soru: AUC neden büyük olması gerekiyor ? AUC modelimizin farklı sınıfları ayırmada ne kadar iyi olduğunu gösteriyor. Auc büyük olduğu durumda TN ve TP dağılımımız kesişmiyor, modelim o kadar iyi ki doğru eşik değeri ile iki sınıfı birbirinden hatasız ayırabiliyor şeklinde yorum yapabiliriz.

Eklemek istediğiniz ya da hatalı bulduğunuz noktaları yorum olarak belirtebilirsiniz. Yazımın içeriğinde kullandığım kodların tamamına aşağıdaki linkten ulaşabilirsiniz.

Written by

Bilgi paylaştıkça çoğalır, insan paylaştıkça güzelleşir. https://www.linkedin.com/in/bernatas/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store