ROC-AUC 0,97, Precision 9%: Matematika Base Rate
Telusuri detektor dengan 1% positif, ubah ambang menjadi titik ROC dan precision-recall, lalu pilih titik operasi untuk anggaran peninjauan 30 alert.
Berikut sebuah detektor dengan ROC-AUC . Pada set pengujian berisi 1.000 baris dengan 10 positif, ambang recall 90%-nya mengirim 99 alert. Sembilan di antaranya benar. Sembilan puluh salah.
Kedua pernyataan itu menggambarkan pemeringkatan skor yang sama. Pernyataan pertama menghargai seberapa baik contoh positif cenderung berada di atas contoh negatif pada semua ambang. Pernyataan kedua menggambarkan antrean yang benar-benar harus ditinjau orang pada satu ambang. Ketika positif jarang, keduanya dapat menjadi cerita operasional yang sangat berbeda.
Pelajaran ini membangun perbedaan tersebut dari contoh sintetis yang lengkap. Anda akan mengubah hitungan ambang menjadi koordinat ROC dan precision-recall, menghitung ROC-AUC dan average precision, menunjukkan bagaimana prevalensi mengubah precision tanpa mengubah titik ROC, serta memilih ambang yang sesuai dengan anggaran peninjauan 30 alert.
Satu ambang menghasilkan 99 alert
Bayangkan sebuah model yang memberi skor antara dan untuk setiap baris. Set ini berisi 10 positif dan 990 negatif, sehingga prevalensinya adalah
Pada ambang , setiap skor yang setidaknya menjadi alert. Matriks kebingungan yang dihasilkan adalah:
| Prediksi | Sebenarnya positif | Sebenarnya negatif | Total |
|---|---|---|---|
| Alert | TP = 9 | FP = 90 | 99 |
| Tanpa alert | FN = 1 | TN = 900 | 901 |
| Total | 10 | 990 | 1.000 |
Ambang tersebut menangkap sembilan dari sepuluh positif. Itu terdengar kuat sampai antrean peninjauan dihitung: 90 dari 99 alert adalah false positive. Model tidak bertentangan dengan dirinya sendiri. Recall dan precision menjawab pertanyaan yang berbeda.
Recall bertanya, “Dari semua positif aktual, berapa bagiannya yang ditangkap sistem alert?” Precision bertanya, “Dari semua alert, berapa bagiannya yang positif?” Pada titik operasi ini, jawabannya adalah dan .
Matriks kebingungan menyediakan kedua sistem koordinat
Kurva ROC memplot true-positive rate, yaitu recall, terhadap false-positive rate:
Kurva precision-recall memplot precision terhadap recall. Untuk ambang , matriks kebingungan yang sama memberikan
dan . Jadi koordinat ROC-nya adalah . Untuk sudut pandang precision-recall,
Bersama recall , itu menjadi koordinat precision-recall .
Sekarang sapu enam ambang melalui skor yang sama dan sudah diurutkan. Hitungannya kumulatif: menurunkan ambang menambahkan contoh positif dan negatif sekaligus ke set alert.
| Ambang | TP | FP | Alert | Recall | FPR | Precision |
|---|---|---|---|---|---|---|
| ∞ | 0 | 0 | 0 | 0.0 | 0.0 | 1.000* |
| 0.95 | 4 | 1 | 5 | 0.4 | 0.0010 | 0.800 |
| 0.75 | 8 | 20 | 28 | 0.8 | 0.0202 | 0.286 |
| 0.55 | 9 | 90 | 99 | 0.9 | 0.0909 | 0.091 |
| 0.35 | 10 | 290 | 300 | 1.0 | 0.2929 | 0.033 |
| 0.10 | 10 | 990 | 1.000 | 1.0 | 1.0 | 0.010 |
Tanpa prediksi positif, precision tidak terdefinisi. Nilai 1 adalah titik awal konvensional yang digunakan untuk menggambar kurva ini; itu bukan bukti bahwa pengklasifikasi berguna.
Dokumentasi kurva precision-recall scikit-learn menggunakan definisi yang sama dan menyertakan endpoint untuk kurva lengkap. Ambangnya adalah nilai skor yang berbeda; dataset nyata biasanya menyediakan jauh lebih banyak titik daripada contoh ringkas ini.
Titik oranye adalah ambang 0.75 di kedua panel. Koordinat berubah, sementara matriks kebingungan yang mendasarinya tetap terdiri dari 8 true positive, 20 false positive, 2 false negative, dan 970 true negative.
ROC memadatkan 90 false alarm menjadi 9,1%
Pada ambang , penyebut FPR mencakup semua 990 negatif. Sembilan puluh false positive menjadi FPR hanya . Precision justru menempatkan 90 false positive yang sama di samping sembilan true positive yang akan dilihat peninjau. Hasilnya adalah precision .
Inilah efek base rate dalam aritmetika. Sebagian kecil dari kelas negatif yang sangat besar dapat melebihi sebagian besar kelas positif yang sangat kecil. Titik ROC valid dan tidak memuat kemurnian alert ataupun ukuran antrean.
ROC-AUC merangkum seluruh kurva ROC, bukan satu ambang tertentu. Menerapkan aturan trapesium pada keenam titik menghasilkan
scikit-learn mendefinisikan ROC-AUC sebagai luas di bawah kurva ROC yang dihitung dari skor prediksi. Untuk pengklasifikasi biner, metrik ini juga dapat dibaca sebagai probabilitas bahwa positif yang dipilih secara acak menerima skor lebih tinggi daripada negatif yang dipilih secara acak, dengan penanganan ties seperti biasa. Interpretasi pemeringkatan itu tidak menetapkan ambang, jumlah alert, atau biaya peninjauan.
Analisis ICML 2006 oleh Jesse Davis dan Mark Goadrich menunjukkan mengapa perbedaan ini makin tajam dalam ketidakseimbangan kelas. ROC dan kurva precision-recall terhubung secara matematis untuk dataset tetap, tetapi penyebut negatif yang besar dapat membuat plot ROC tampak optimistis secara visual. Mereka juga menunjukkan bahwa interpolasi garis lurus dalam ruang precision-recall umumnya keliru; kurva di antara titik operasi yang diamati bukan sekadar segmen garis dekoratif.
Untuk penyapuan diskret ini, average precision tanpa interpolasi adalah
Nilai itu jauh di atas precision dari pemeringkatan tanpa informasi pada prevalensi ini. AP tetap merangkum pemeringkatan; keputusan penempatan staf memerlukan titik operasi. Dokumentasi average precision scikit-learn menggunakan penjumlahan berbobot recall di atas dan memperingatkan bahwa interpolasi trapesium dapat bersifat optimistis.
Prevalensi mengubah precision tanpa mengubah titik ROC
Tuliskan prevalensi sebagai . Jika suatu titik operasi memiliki true-positive rate dan false-positive rate , maka dalam populasi besar:
- bagian alert positif yang diharapkan adalah ;
- bagian false alert yang diharapkan adalah .
Precision diperoleh dengan membagi bagian alert positif dengan seluruh alert:
Gunakan ambang , dengan dan . Dengan mempertahankan rate bersyarat tersebut, diperoleh:
| Prevalensi | Precision yang diharapkan |
|---|---|
| 0,1% | 3,8% |
| 1% | 28,6% |
| 10% | 81,5% |
Koordinat ROC tetap dekat pada ketiga baris karena TPR dikondisikan pada positif dan FPR pada negatif. Koordinat precision berubah drastis karena penyebutnya mencampur true alert dan false alert.
Perhitungan ini mengasumsikan TPR dan FPR berpindah tanpa perubahan ke populasi baru. Transfer harus diuji: pergeseran distribusi skor, label, atau kualitas data dapat menggeser kedua rate. Estimasikan titik operasi pada data yang mewakili penggunaan yang dimaksudkan, dan pisahkan pemilihan ambang dari sampel tak tersentuh yang digunakan untuk laporan performa final. Disiplin populasi yang sama penting ketika mengalibrasi probabilitas prediksi.
Tiga puluh slot peninjauan memilih ambang
Misalkan tim dapat meninjau paling banyak 30 alert per 1.000 baris dan memerlukan recall sedikitnya . Aturan keputusannya kini eksplisit:
Syarat recall adalah
Ambang cocok dengan antrean dengan lima alert, tetapi recall -nya tidak memenuhi syarat. Ambang menghasilkan 28 alert dan mencapai recall , jadi memenuhi syarat. Ambang mencapai recall , tetapi menghasilkan 99 alert, lebih dari tiga kali kapasitas yang tersedia.
Jadi titik operasi yang dipilih adalah untuk baris dan kendala ini. Precision-nya adalah : peninjau seharusnya mengharapkan sekitar 20 false alert di antara 28 alert, bukan rasa nyaman yang tersirat ketika hanya mengutip ROC-AUC .
Kapasitas juga dapat ditulis sebagai kelonggaran false positive. Setelah jumlah minimum true positive ditetapkan, anggaran mengizinkan paling banyak
Dengan dan delapan true positive, kelonggarannya adalah 22 false positive. Ambang menghasilkan 20. Terjemahan ini menghubungkan metrik model dengan kendala sumber daya yang sebenarnya, alih-alih menetapkan kepentingan universal pada satu kurva.
Reproduksi penyapuan dan gerbang anggaran
Program NumPy berikut menghitung kedua kurva, ROC-AUC, average precision tanpa interpolasi, dan ambang yang memenuhi syarat. Array menyimpan hitungan kumulatif pada setiap ambang yang menurun.
import numpy as np
thresholds = np.array([np.inf, 0.95, 0.75, 0.55, 0.35, 0.10])
tp = np.array([0, 4, 8, 9, 10, 10])
fp = np.array([0, 1, 20, 90, 290, 990])
positives, negatives = 10, 990
recall = tp / positives
fpr = fp / negatives
precision = np.divide(
tp,
tp + fp,
out=np.ones_like(tp, dtype=float),
where=(tp + fp) > 0,
)
roc_auc = np.trapezoid(recall, fpr)
average_precision = np.sum(np.diff(recall) * precision[1:])
budget = 30
recall_floor = 0.75
alerts = tp + fp
eligible = (alerts <= budget) & (recall >= recall_floor)
print(f"ROC-AUC: {roc_auc:.6f}")
print(f"average precision: {average_precision:.6f}")
print("eligible thresholds:", thresholds[eligible])
Outputnya adalah:
ROC-AUC: 0.970808
average precision: 0.446710
eligible thresholds: [0.75]
Jika beberapa ambang memenuhi syarat, pilih berdasarkan tujuan sekunder yang telah dinyatakan—misalnya recall tertinggi dalam anggaran atau biaya yang diharapkan paling rendah—bukan berdasarkan titik yang membuat grafik tampak paling bagus. Jika skor memiliki ties, semua baris pada ambang itu bergerak bersama; target kapasitas mungkin tidak dapat dicapai secara tepat.
Ketika tidak ada ambang yang cocok
Perketat anggaran yang sama menjadi 25 alert sambil mensyaratkan recall . Ambang menangkap delapan positif tetapi menghasilkan 28 alert. Ambang yang lebih tinggi cocok dengan antrean tetapi hanya menangkap empat positif. Tidak ada baris dalam penyapuan yang memenuhi kedua kendala.
Hasil itu dapat ditindaklanjuti. Memindahkan ambang tidak dapat menciptakan titik operasi yang hilang. Tim harus memperbaiki pemeringkatan, menambahkan filter tahap kedua, meningkatkan kapasitas peninjauan, atau menerima syarat recall yang berbeda. Dalam sistem nyata, biaya false positive dan false negative juga dapat berbeda, sehingga fungsi biaya atau analisis keputusan dapat menggantikan batas antrean sederhana.
Prinsip pengukuran yang lebih luas ini bersifat kekinian sekaligus matematis. NIST AI 800-3 menekankan bahwa evaluator harus memilih besaran performa dan metode ketidakpastian yang sesuai dengan tujuan dan data; tidak ada satu rumus untuk setiap evaluasi. Di sini, besaran yang relevan bukan “AUC” secara abstrak, melainkan recall, precision, dan volume alert pada suatu ambang untuk prevalensi yang disebutkan dan anggaran peninjauan yang nyata.