Mengapa Visualisasi Precision-Recall Curve Penting dalam Machine Learning Modern
Dalam dunia machine learning, evaluasi model adalah tahap yang tidak kalah penting dari proses pelatihan model itu sendiri. Banyak pengembang dan data scientist masih menilai keberhasilan model hanya berdasarkan akurasi (accuracy). Namun, ketika dataset yang digunakan tidak seimbang — misalnya hanya 5% data positif dan 95% data negatif — maka metrik akurasi bisa menyesatkan.
Di sinilah visualisasi Precision-Recall Curve (PR Curve) berperan penting. Kurva ini membantu kita memahami keseimbangan antara Precision (ketepatan prediksi positif) dan Recall (kemampuan menangkap semua kasus positif). Dengan memvisualisasikan PR Curve, kita dapat dengan mudah menilai performa model klasifikasi, terutama dalam kasus data imbalance seperti deteksi penipuan, spam, atau diagnosis medis.
Dibandingkan dengan ROC Curve, Precision-Recall Curve memberikan gambaran yang lebih realistis dalam menilai performa model pada dataset tidak seimbang. ROC dapat memberi kesan model bekerja dengan baik padahal sebenarnya hanya mengandalkan mayoritas kelas negatif.
- Mengapa Visualisasi Precision-Recall Curve Penting dalam Machine Learning Modern
- 1. Kurva ROC (Receiver Operating Characteristic)
- 2. Precision, Recall, dan F1-Score
- Membentuk Precision-Recall Curve Secara Matematis
- Implementasi di Python (Scikit-Learn, Matplotlib, Seaborn)
- Interpretasi Visual dan Analisis Praktis
- Precision-Recall Curve dalam Kasus Klasifikasi Tidak Seimbang (Imbalanced Data)
- Kesalahan Umum dan Solusi Praktis
- Perbandingan: Mana yang Harus Dipilih?
- Studi Kasus Nyata: Model Deteksi Fraud dan Diagnosis Medis
- Rekomendasi Tools dan Praktik Lanjutan
- Kesimpulan & Call to Action
- FAQ
1. Kurva ROC (Receiver Operating Characteristic)
Kurva ROC adalah plot yang menggambarkan kemampuan diagnostik sistem klasifikasi biner ketika ambang batas (threshold) diskriminasi divariasikan.
Sumbu pada Kurva ROC
Kurva ini memplot dua parameter:
- True Positive Rate (TPR) atau Sensitivity pada sumbu Y.
- False Positive Rate (FPR) atau (1 – Specificity) pada sumbu X.
Area Under Curve (AUC) – ROC
Area di bawah kurva ROC (AUC-ROC) memberikan ukuran kinerja agregat di semua ambang batas klasifikasi yang mungkin.
- AUC = 0.5: Model tidak memiliki kemampuan diskriminasi (sama dengan menebak acak).
- AUC = 1.0: Model sempurna.
Kapan Menggunakan ROC?
Kurva ROC sangat ideal digunakan ketika:
- Observasi Seimbang: Jumlah kelas positif dan negatif dalam dataset relatif seimbang.
- Deteksi Keseluruhan: Anda ingin melihat performa model secara umum tanpa terlalu mempedulikan ketidakseimbangan kelas yang ekstrem.
2. Precision, Recall, dan F1-Score
Sebelum masuk ke tahap visualisasi, kita perlu memahami konsep dasar dari Precision, Recall, dan F1-Score — tiga pilar utama dalam evaluasi model machine learning.
- Precision = TP / (TP + FP)
Mengukur seberapa banyak prediksi positif model benar-benar positif. - Recall = TP / (TP + FN)
Mengukur seberapa banyak kasus positif yang berhasil ditemukan model. - F1-Score = 2 × (Precision × Recall) / (Precision + Recall)
Kombinasi harmonis antara Precision dan Recall.
Misalnya, dalam kasus deteksi email spam, jika model hanya menandai email spam yang sangat jelas (Precision tinggi) tetapi melewatkan banyak spam lain (Recall rendah), maka performa model belum optimal.
Confusion matrix menjadi dasar dari semua perhitungan ini. Dengan melihat True Positive (TP), False Positive (FP), False Negative (FN), dan True Negative (TN), kita dapat memahami secara detail di mana model melakukan kesalahan.
Perubahan threshold model — yaitu batas probabilitas untuk menentukan apakah output dianggap positif atau negatif — akan memengaruhi nilai Precision dan Recall. Di sinilah Precision-Recall Curve muncul untuk menggambarkan trade-off tersebut.
Membentuk Precision-Recall Curve Secara Matematis
Setiap titik pada Precision-Recall Curve menunjukkan kombinasi nilai Precision dan Recall untuk suatu threshold tertentu. Saat threshold bergerak dari 0 hingga 1, model menghasilkan berbagai nilai probabilitas yang berbeda, dan dari sinilah kurva terbentuk.
Langkah matematis dasar:
- Model memberikan skor probabilitas untuk setiap observasi.
- Untuk setiap threshold (misalnya 0.1, 0.2, … 0.9), kita menghitung:
- Berapa banyak True Positive, False Positive, dan False Negative.
- Dari nilai-nilai tersebut, dihitung Precision dan Recall.
- Pasangan (Precision, Recall) diplot untuk membentuk kurva.
Nilai AUC-PR (Area Under the Precision-Recall Curve) kemudian dihitung untuk memberikan ukuran keseluruhan performa model.
Semakin besar AUC-PR, semakin baik keseimbangan antara Precision dan Recall.
Berbeda dengan AUC-ROC, nilai AUC-PR memberikan indikasi yang lebih akurat tentang performa pada dataset tidak seimbang.
Rumus sederhana AUC-PR (trapezoidal rule):

Implementasi di Python (Scikit-Learn, Matplotlib, Seaborn)
Mari kita lihat contoh nyata bagaimana visualisasi Precision-Recall Curve dilakukan menggunakan Python.
Langkah 1: Menyiapkan Dataset
Kita akan menggunakan dataset simulasi dari Scikit-Learn.
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import precision_recall_curve, average_precision_score
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
import seaborn as sns
# Membuat dataset tidak seimbang
X, y = make_classification(n_samples=5000, n_features=20,
n_classes=2, weights=[0.95, 0.05],
random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Langkah 2: Melatih Model
model = RandomForestClassifier()
model.fit(X_train, y_train)
y_scores = model.predict_proba(X_test)[:, 1]
Langkah 3: Menghitung Precision dan Recall
precision, recall, thresholds = precision_recall_curve(y_test, y_scores)
avg_precision = average_precision_score(y_test, y_scores)
Langkah 4: Visualisasi Precision-Recall Curve
plt.figure(figsize=(8,6))
sns.lineplot(x=recall, y=precision, color='blue')
plt.title(f'Precision-Recall Curve (AUC-PR = {avg_precision:.2f})')
plt.xlabel('Recall')
plt.ylabel('Precision')
plt.grid(True)
plt.show()

Grafik ini menampilkan hubungan antara Recall (sumbu X) dan Precision (sumbu Y) untuk model Random Forest pada dataset tidak seimbang.
Area di bawah kurva (AUC-PR) menunjukkan performa keseluruhan model — semakin besar area biru, semakin baik kemampuan model menyeimbangkan Precision dan Recall.
Kurva ini memperlihatkan bagaimana Precision dan Recall berubah seiring dengan threshold.
Biasanya, semakin tinggi Recall, Precision akan menurun, dan sebaliknya. Grafik ini membantu menemukan threshold optimal sesuai kebutuhan bisnis.
Temukan cara menghitung confusion matrix multiclass 3×3
Interpretasi Visual dan Analisis Praktis
Membaca Precision-Recall Curve bukan sekadar melihat bentuk kurva. Ada interpretasi praktis di baliknya:
- Kurva ideal akan mendekati sisi kanan atas grafik, menunjukkan Precision dan Recall sama-sama tinggi.
- Kurva datar menandakan model sulit membedakan antara kelas positif dan negatif.
- Area di bawah kurva (AUC-PR) merupakan ukuran kinerja keseluruhan: semakin besar nilainya, semakin baik.
Misalnya, jika AUC-PR = 0.90, itu berarti model mempertahankan Precision tinggi bahkan ketika Recall meningkat — performa yang sangat baik untuk dataset tidak seimbang.
🔹 Tips Membaca Grafik:
- Threshold tinggi: Precision meningkat, Recall menurun.
- Threshold rendah: Recall meningkat, Precision menurun.
- Pilih threshold optimal dengan mempertimbangkan business cost — misalnya dalam deteksi penipuan, lebih baik Recall tinggi meski Precision turun sedikit.
Precision-Recall Curve dalam Kasus Klasifikasi Tidak Seimbang (Imbalanced Data)
Banyak dataset di dunia nyata tidak seimbang, seperti:
- Fraud detection (transaksi palsu < 1%)
- Diagnosis penyakit langka
- Sistem keamanan (anomaly detection)
Pada kasus seperti ini, Precision-Recall Curve menjadi alat terbaik untuk evaluasi karena akurasi bisa menipu.
Misalnya, model yang selalu memprediksi “tidak fraud” bisa memiliki akurasi 99%, tapi Recall = 0 (tidak menemukan kasus fraud sama sekali).
Strategi Perbaikan
- Oversampling dengan metode SMOTE (Synthetic Minority Oversampling Technique)
- Undersampling data mayoritas
- Penyesuaian class weights di algoritma seperti
RandomForestClassifier(class_weight='balanced') - Tuning threshold berdasarkan Precision-Recall trade-off
Visualisasi PR Curve sebelum dan sesudah teknik balancing dapat memperlihatkan perbaikan performa model secara signifikan.
Kesalahan Umum dan Solusi Praktis
Meskipun PR Curve mudah digunakan, banyak praktisi yang masih salah menafsirkan hasilnya. Berikut beberapa kesalahan umum:
- Menggunakan ROC Curve untuk dataset imbalance
ROC dapat memberikan hasil yang menipu karena tetap tinggi meski Recall rendah. - Mengabaikan AUC-PR
Banyak yang hanya melihat kurva tanpa menghitung nilai AUC-nya. - Tidak menyesuaikan threshold
Threshold default (0.5) tidak selalu optimal untuk kasus tidak seimbang. - Menggunakan metrik tunggal (misalnya F1-Score saja)
Kombinasikan F1-Score dengan PR Curve agar penilaian lebih objektif.
💡 Solusi:
- Selalu tampilkan AUC-PR di laporan evaluasi.
- Gunakan cross-validation untuk validasi performa PR Curve.
- Lakukan eksperimen visual dengan berbagai threshold.
Perbandingan: Mana yang Harus Dipilih?
abel berikut merangkum panduan dasar pemilihan kurva berdasarkan artikel referensi:
| Kondisi Dataset | Metrik yang Disarankan | Alasan |
|---|---|---|
| Seimbang (Balanced) | Kurva ROC | Memberikan gambaran trade-off antara positif sejati dan positif palsu secara adil. |
| Tidak Seimbang (Imbalanced) | Kurva Precision-Recall | Fokus pada kinerja kelas minoritas. ROC bisa menyesatkan karena tingginya jumlah True Negatives. |
Studi Kasus Nyata: Model Deteksi Fraud dan Diagnosis Medis
Mari lihat dua contoh nyata penerapan Precision-Recall Curve di dunia industri:
1. Deteksi Fraud pada Transaksi Keuangan
Dataset dengan rasio 1:1000 antara transaksi fraud dan normal sangat sulit dievaluasi dengan akurasi biasa.
- Dengan ROC Curve, model terlihat bagus (AUC-ROC > 0.95).
- Tapi AUC-PR hanya 0.25, artinya Precision rendah.
Setelah diterapkan SMOTE + threshold tuning, nilai AUC-PR meningkat ke 0.70, menandakan peningkatan kemampuan model menemukan fraud dengan tetap menjaga Precision.
2. Diagnosis Penyakit Langka
Dalam data medis, Recall tinggi lebih penting daripada Precision.
Dengan PR Curve, analis bisa melihat kapan Recall mulai menurun tajam dan menyesuaikan threshold agar lebih banyak pasien terdeteksi, meskipun risiko false positive meningkat.
Studi-kasus semacam ini memperlihatkan bahwa Precision-Recall Curve bukan hanya metrik teknis, tapi alat pengambilan keputusan yang sangat penting.
Rekomendasi Tools dan Praktik Lanjutan
Untuk meningkatkan kredibilitas dan efisiensi, gunakan alat profesional dalam memantau PR Curve secara berkelanjutan.
- TensorBoard – menampilkan kurva Precision-Recall selama pelatihan model deep learning.
- MLflow – mencatat hasil eksperimen dan memantau AUC-PR dari berbagai model.
- Google Colab / Jupyter Notebook – mudah digunakan untuk eksperimen visualisasi.
- Pipeline otomatis – gabungkan evaluasi PR Curve ke dalam CI/CD ML pipeline.
- Visualisasi interaktif – gunakan Plotly atau Bokeh untuk kurva yang bisa dieksplorasi.
Dengan dokumentasi yang baik dan visualisasi interaktif, hasil PR Curve tidak hanya akurat tetapi juga mudah dipahami oleh tim non-teknis.
Kesimpulan & Call to Action
Precision-Recall Curve adalah metrik visual yang wajib dipahami oleh setiap praktisi machine learning — terutama saat bekerja dengan data tidak seimbang.
Melalui visualisasi PR Curve, kamu dapat:
- Menilai keseimbangan antara Precision dan Recall
- Memilih threshold optimal
- Mengevaluasi model dengan metrik yang lebih akurat dari sekadar akurasi
Gunakan Scikit-Learn, Matplotlib, dan Seaborn untuk membangun visualisasi PR Curve dengan mudah, dan pertimbangkan AUC-PR sebagai indikator utama performa model.
Terakhir, ingat: model terbaik bukan yang paling akurat, tapi yang paling relevan dengan kebutuhan bisnis dan data yang ada.
FAQ
ROC melihat hubungan antara TPR dan FPR, sedangkan PR Curve fokus pada Precision dan Recall — lebih cocok untuk data imbalance.
Bisa, dengan pendekatan one-vs-rest di setiap kelas.
Pilih titik yang memberikan kombinasi Precision-Recall terbaik sesuai tujuan (misal recall tinggi untuk deteksi penyakit).
Ya, AUC-PR menunjukkan performa keseluruhan di berbagai threshold, bukan hanya satu titik.
Ada, seperti TensorBoard, MLflow, dan platform AutoML seperti Vertex AI.
Referensi : https://machinelearningmastery.com/roc-curves-and-precision-recall-curves-for-classification-in-python/



