Receiver Operating Characteristic (ROC) Curve
Alıcı işletim karakteristiği (ROC) eğrisi, her eşikte doğru pozitif oranını yanlış pozitif oranına karşı gösterir. Eğriyi okuma, AUC ve kod.
Alıcı çalışma karakteristiği (ROC) eğrisi, ikili bir sınıflandırıcının iki sınıfı olası tüm karar eşiklerinde ne kadar iyi ayırdığını gösteren bir grafiktir. Modelin puanlarına uygulanan her eşik için bir nokta kullanarak, y ekseninde doğru pozitif oranını x eksenindeki yanlış pozitif oranına karşı gösterir; böylece pozitifleri yakalamakla yanlış alarm vermek arasındaki tüm ödünleşimleri tek bir görselde sunar. Eğrinin altındaki alanı ifade eden eğri altındaki alan (AUC), bu görünümü eşikten bağımsız tek bir sayıya indirger. Adı, radar alıcılarının düşman uçaklarını gürültüden ne kadar iyi ayırdığını ölçtüğü II. Dünya Savaşı radar mühendisliğinden gelir. Yöntem daha sonra tıp, psikoloji ve makine öğrenimi (ML) alanlarına yayıldı.
ROC Eğrisi Nasıl Oluşturulur#
Eğrideki her nokta, tek bir eşikte hesaplanan bir karmaşıklık matrisi kullanılarak elde edilir:
- Doğru pozitif oranı (TPR), duyarlılık veya recall olarak da adlandırılır: TP / (TP + FN); modelin işaretlediği gerçek pozitiflerin oranıdır.
- Yanlış pozitif oranı (FPR): FP / (FP + TN); yanlışlıkla işaretlenen gerçek negatiflerin oranıdır. FPR, 1 eksi özgüllüğe eşittir.
Eşiği yüksekten düşüğe taramak, eğriyi hiçbir şeyin işaretlenmediği (0, 0) noktasından her şeyin işaretlendiği (1, 1) noktasına taşır. Her pozitif örneği her negatif örnekten daha yüksek sıralayan bir sınıflandırıcı sol üst köşeden geçer; rastgele tahmin yapan bir model köşegeni izler, köşegenin altındaki bir eğri ise puanların tersine çevrildiği anlamına gelir. AUC, rastgele seçilen bir pozitif örneğin rastgele seçilen bir negatif örnekten daha yüksek puan alma olasılığına eşittir; bu nedenle 0,5 şans düzeyini, 1,0 ise kusursuz ayrımı gösterir. Eğriyi oluşturmak için tahmin edilen olasılıklar veya güven değerleri gibi sürekli puanlar gerekir; katı 0/1 etiketleri yalnızca tek bir nokta verir. Aşağıdaki örnek, dengesiz bir veri kümesinde lojistik regresyon sınıflandırıcısı eğitir ve eğrisini scikit-learn'ün roc_curve işleviyle hesaplar:
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, roc_curve
from sklearn.model_selection import train_test_split
# Binary task where 10% of samples are positive
X, y = make_classification(n_samples=5000, weights=[0.9], class_sep=0.8, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)
# ROC analysis needs continuous scores, not hard 0/1 predictions
scores = LogisticRegression().fit(X_train, y_train).predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = roc_curve(y_test, scores)
print(f"AUC: {roc_auc_score(y_test, scores):.3f}")
# Each threshold is one point on the curve: higher recall costs more false alarms
for target in (0.80, 0.95):
i = np.argmax(tpr >= target) # first point that reaches the target TPR
print(f"Threshold {thresholds[i]:.2f}: TPR {tpr[i]:.2f}, FPR {fpr[i]:.2f}")Modelin AUC değeri 0,963'tür. 0,44 eşiğinde pozitiflerin %82'sini 0,01 FPR ile bulur; %95 recall değerine ulaşmak için eşik 0,02'ye düşürülmelidir ve bu noktada FPR 0,26'ya sıçrar. 130 pozitif ve 1.120 negatif örnek içeren bu test bölümünde 18 ek pozitif yakalamak, 279 ek yanlış alarm pahasına gerçekleşir.
Çalışma Noktasını Seçme#
Eğri, her eşik için ödenen bedeli gösterir; hangi bedelin kabul edilebilir olduğuna uygulama karar verir:
- Tıbbi tarama: Kaçırılan bir tümörün bedeli, takip taramasının bedelinden çok daha ağırdır. Bu nedenle tarama araçları yüksek TPR noktasında çalışır ve radyologların incelemesi için daha fazla yanlış pozitifi kabul eder.
- Dolandırıcılık tespiti: Engellenen her meşru ödeme müşteriyi mağdur eder. Bu nedenle bankalar, inceleme ekiplerinin ve müşterilerin tolere edebileceği bir FPR düzeyini korurken dolandırıcılıkların çoğunu yakalayan bir nokta seçer.
- Eşit maliyetler: Her iki hatanın maliyeti aynı olduğunda Youden'ın J istatistiği, yani TPR eksi FPR, köşegenin en üstündeki noktayı seçer.
Ultralytics YOLO26 sınıflandırma modelleri, ROC analizinin gerektirdiği sürekli puanlar olan her sınıf için bir olasılığı results[0].probs.data içinde döndürür. Bu nedenle etiketli bir doğrulama kümesinde tek bir sınıfın olasılığını toplamak, o sınıf için bire karşı tüm ROC eğrisini ve dağıtım maliyetlerine göre seçilmiş bir eşiği verir.
ROC Eğrisi ve İlişkili Araçlar#
Bir kesinlik-recall eğrisi, TPR yerine kesinliği, FPR yerine recall değerine karşı çizer. TPR ve FPR'nin her biri tek bir sınıf içinde hesaplandığından, pozitif örnekler seyrekleştiğinde ROC eğrisi aynı kalırken kesinlik düşer. Dolandırıcılık taraması veya anomali tespiti gibi pozitif örneklerin seyrek olduğu durumlarda düşük bir FPR bile gerçek tespitlerden daha fazla yanlış alarm anlamına gelebilir. Dengesiz veri kümeleri üzerine PLOS ONE çalışması, bu durumda kesinlik-recall grafiklerinin daha fazla bilgi verdiğini buldu. Nesne tespiti, benzer bir nedenle kesinlik-recall eğrileri ve ortalama kesinlik (mAP) kullanılarak değerlendirilir: gerçek negatif sayılabilecek arka plan bölgelerinin sınırı olmadığından FPR'nin sabit bir paydası yoktur.
- Doğruluk ve F1 puanı: Tek bir eşikte ölçülen sayılardır; ROC eğrisi ve AUC'si ise tüm eşikleri özetler.
- Çok sınıflı görüntü sınıflandırma: Her sınıf için bire karşı tüm ROC eğrisi oluşturulur. Sınıf başına AUC değerleri, makro ortalamaya veya sınıf yaygınlığına göre ağırlıklandırılmış bir puana dönüştürülür. Scikit-learn bu hesabı
roc_auc_scoreişlevindemulti_class="ovr"ile yapar.










