ROC Eğrisi Nedir?

Emel
4 min readApr 30, 2022

ROC (Receiver Operating Characteristic) eğrisi 2. Dünya Savaşı zamanında kullanılan radar sinyali tespit uygulamalarına dayanır. Hatta ismini de buradan almaktadır çünkü radar alıcılarını kullananlara receiver operator denilmekteydi. Uygulamadaki amaç radarda görülen noktaların düşman uçağı olup olmadığına karar vermekti.

Örneğin yukarıdaki radar örneğinde tespit edilen noktalardan yeşil olanlar false positive sınıfı temsil etmektedir. Yani radar bunları tespit etmiş (positive) fakat bunlar düşman uçağına ait değil (false).

Kırmızı nokta ise true positive durumunu ifade eder. Radar uçağı hem tespit etmiş hem de bir düşman uçağıdır.

ROC eğrisinde true positive ile false positive oranını karşılaştırmamız buradan gelmektedir.

1970'lerde bu eğri sağlık alanına da girerek günümüzde makine öğrenmesinde sınıflandırma algoritmalarının başarılarını karşılaştırmak için kullanılmaktadır.

Şimdi ise günümüzden bir örnekle bu eğriyi inceleyelim. Mail kutunuza baktığınızda sık kullandığınız uygulamalardan genellikle yalnızca size özel çeşitli teklifleri (indirim, bedava özellikler vb.) içeren mailleri almazsınız. Fakat daha önce ücretli üyesi olduğunuz ve bir süredir kullanmadığınız uygulamalar mail kutunuzu çeşitli cezbedici tekliflerle doldurur. Çünkü siz bu uygulamada artık churn müşteri konumuna düşmüşsünüzdür. Peki churn müşteri ne demektir ve neden önemlidir?

Churn daha önce uygulamayı kullanan ve çeşitli ücretli özelliklerinden yararlanan fakat bir süredir üyeliğini yenilemeyen veya uygulamayı kullanmayan kullanıcılara denilmektedir.

Bu müşterileri elde tutmak önemlidir çünkü uygulama için yeni müşteri bulup kaydetmek çok daha yorucu bir sürece neden olacaktır. Diyelim ki kullanıcının uygulamaya giriş yapmadığı gün sayısı gibi çeşitli metrikleri kullanarak her bir müşteri için churn olma olasılığını hesapladık. Peki bu iki sınıf arasındaki ayrımı nereden yapmamız gerekmektedir?

Threshold 2 değerini aldığımızda %50 olasılığının altındakileri churn olarak algılayıp yalnızca bu kesime çeşitli indirimli teklifleri yollarız. Fakat uygulamamızda bütçe sıkıntımız varsa hala bu oranı kullanmak doğru bir seçim olur mu? Böyle bir durumda threshold 1 değeri daha uygun olacaktır.

Uygulamamızda bütçe sıkıntımız yoksa ve churn müşterileri mutlaka geri kazanmak istiyorsak threshold 3 değeri işimize yarayacaktır. Fakat bundan emin miyiz? Belki de gerçekten churn olmuş müşterilerimiz threshold 1'in altında toplanmıştır. Böyle bir durumda uygulama neden zarar etsin? Bu değerleri karşılaştırmak için 3 ayrı karmaşıklık matrisi kullanabiliriz fakat threshold değerleri arttıkça matris sayısı da artacağından karşılaştırma yapmak zorlaştıracaktır. Buna çözüm ROC eğrisidir.

Öncelikle x ve ye eksenindeki değerilerin ne ifade ettiğine karmaşıklık matrisi üzerinden bakalım.

X ekseni false positive oranını ifade eder. (FP / (FP + TN)) Buna 1-specificity de denilmektedir.

Y ekseni true positive oranını ifade eder. (TP / (TP + FN)) Buna sensitivity veya recall da denilmektedir.

True positive değerinin 1 olması gerçekten de churn olan müşterilerin tamamının tahmin edilmesidir. False positive değerinin 0 olması ise churn olmayan fakat churn olarak tahmin edilen müşterilerin olmamasıdır. İlkinde churn müşterileri çeşitli tekliflerle geri getirmeye çalışırken ikincide de gereksiz yere indirimden kaçınıyoruz.

Buna göre mavi ile gösterilmiş yer bizim churn ve churn olmayan ayrımını ideal yaptığımız noktadır. Eğriler bu noktaya ne kadar yakınsa model de o kadar başarılıdır demektir.

Kırmızı ile ifade edilmiş random classifier en kötü modeli göstermektedir. Buna göre model müşteriyi hiçbir özelliğine bakmadan rastgele bir sınıfa atayacaktır. Eğer eğri bu random classifier’ın altında çıkıyorsa demekki negatif ile pozitif sınıf ters bir şekilde alınmıştır. Sınıflar düzeltilirse eğri üst kısımda diğer eğrilerin yer aldığı bölgede yer alacaktır.

Burada eğriler birbirlerinden açıkca ayrıldığı için modeller arası karşılaştırma yapılabilmektedir. Fakat durum aşağıdaki gibi olduğunda ne yapmalıyız?

Burada AUC (area under the curve) yani eğrinin altında kalan alanı kullanırız. Böylece karşılaştırmayı tek bir sayısal metriğe indirgeyerek modeller arası başarıyı daha kolay karşılaştırabiliriz.

Kaynaklar

  1. ROC Curves
  2. The ROC Curve : Data Science Concepts
  3. ROC CURVE

--

--