Rumusan masalah pada chapter sebelumnya sudah menyebut pertanyaan yang terukur, tetapi belum menyebut satu hal: angka berapa yang kita anggap berhasil. Pertanyaan “berapa persen pelanggan yang hilang?” belum menjadi sasaran sampai pemilik kedai berkata “di bawah 10 persen itu masih sehat” atau “setiap 5 persen penurunan berarti rugi dua juta rupiah per bulan”. Metrik keberhasilan adalah janji yang kita buat sebelum analisis dimulai — dan seperti semua janji, ia harus ditetapkan sebelum hasilnya terlihat, bukan digeser-geser setelah angka keluar. Pada chapter ini kita memilih metrik yang tepat, membedakan metrik proksi dari metrik yang sesungguhnya diinginkan stakeholder, dan waspada terhadap bahaya mengejar satu angka tunggal.

Metrik Proksi dan Metrik Sesungguhnya #

Hampir semua pekerjaan analitik memakai dua lapis metrik sekaligus. Metrik proksi adalah angka teknis yang mudah dihitung dari data: akurasi model, rata-rata galat ramalan, atau koefisien determinasi. Metrik sesungguhnya adalah angka yang benar-benar dipedulikan pemilik keputusan: pelanggan yang bertahan, rupiah yang terselamatkan, atau stok yang tidak menganggur. Keduanya berkorelasi, tetapi tidak saling menggantikan — model bisa membaik di metrik proksi sementara metrik sesungguhnya memburuk, dan sebaliknya.

AspekMetrik proksiMetrik sesungguhnya
Pertanyaan yang dijawabSeberapa baik model meniru data?Berapa dampaknya bagi bisnis?
Contoh pada proyek retensirecall dan precision model churnjumlah pelanggan benar-benar bertahan setelah dihubungi
Contoh pada proyek stokMAE ramalan penjualanbiaya bahan terbuang dan penjualan yang hilang
Siapa yang memahaminyaTim dataPemilik keputusan
Kapan ditetapkanSaat merancang analisis, oleh kitaSaat merumuskan masalah, bersama stakeholder

Metrik proksi tetap diperlukan — metrik inilah yang memandu pengembangan model dari hari ke hari. Yang keliru adalah menukar posisinya: menjadikan akurasi sebagai definisi keberhasilan proyek. Pada akhir proyek, pemilik kedai tidak bertanya “berapa akurasinya?”, melainkan “berapa pelanggan yang selamat?”.

Akurasi Tinggi yang Tidak Menyelamatkan Siapa pun #

Kita lihat betapa tajamnya perbedaan kedua lapis itu pada data retensi Toko Kopi Kita. Dari 40 pelanggan, 32 bertahan dan 8 berhenti — data timpang yang wajar untuk kasus churn. Kita bandingkan dua model: Model A selalu menebak “bertahan” untuk semua orang, sedangkan Model B menandai 10 pelanggan sebagai berisiko berhenti (6 dari tandanya benar). Setiap penawaran retensi berbiaya Rp10.000, dan setiap pelanggan yang berhasil ditahan menyelamatkan pendapatan sekitar Rp100.000.

python
aktual = ["bertahan"] * 32 + ["berhenti"] * 8

prediksi_a = ["bertahan"] * 40
prediksi_b = ["bertahan"] * 28 + ["berhenti"] * 4 + ["berhenti"] * 6 + ["bertahan"] * 2

nilai_pelanggan = 100_000   # pendapatan yang hilang bila pelanggan pergi
biaya_penawaran = 10_000    # biaya menghubungi satu pelanggan tertanda

def rangkum(nama, prediksi):
    tp = sum(1 for a, p in zip(aktual, prediksi) if a == "berhenti" and p == "berhenti")
    fp = sum(1 for a, p in zip(aktual, prediksi) if a == "bertahan" and p == "berhenti")
    fn = sum(1 for a, p in zip(aktual, prediksi) if a == "berhenti" and p == "bertahan")
    tn = sum(1 for a, p in zip(aktual, prediksi) if a == "bertahan" and p == "bertahan")
    akurasi = (tp + tn) / len(aktual)
    recall = tp / (tp + fn)
    nilai = (tp * (nilai_pelanggan - biaya_penawaran)
             - fp * biaya_penawaran
             - fn * nilai_pelanggan)
    print(f"{nama}")
    print(f"  benar tandai {tp}, salah tandai {fp}, terlewat {fn}, aman {tn}")
    print(f"  akurasi {akurasi:.0%} | recall {recall:.0%} | nilai bersih Rp{nilai:+,}"
          .replace(",", "."))

rangkum("Model A: selalu menebak bertahan", prediksi_a)
rangkum("Model B: menandai 10 pelanggan berisiko", prediksi_b)

Output yang Dihasilkan:

text
Model A: selalu menebak bertahan
  benar tandai 0, salah tandai 0, terlewat 8, aman 32
  akurasi 80% | recall 0% | nilai bersih Rp-800.000
Model B: menandai 10 pelanggan berisiko
  benar tandai 6, salah tandai 4, terlewat 2, aman 28
  akurasi 85% | recall 75% | nilai bersih Rp+300.000

Mari kita bedah arti kedua hasil tersebut:

  1. aktual dan prediksi_* menyimulasikan keputusan 40 pelanggan dalam bentuk label; fungsi rangkum() menghitung empat sel confusion matrix — benar tandai (TP), salah tandai (FP), terlewat (FN), dan aman (TN) — langsung dari pasangan label.
  2. Model A mencatat akurasi 80% tanpa mengerjakan apa pun — cukup menebak semua orang bertahan, karena memang 80% pelanggan bertahan. Angka ini terdengar mengesankan sampai kita membaca baris nilainya: kedelapan pelanggan yang pergi tidak tersentuh, dan kerugian penuh Rp800.000 dibiarkan terjadi.
  3. Model B hanya naik 5 poin akurasi, tetapi nilai bisnisnya berbalik arah — dari rugi Rp800.000 menjadi selamat Rp300.000. Enam pelanggan terselamatkan bersih Rp90.000 per orang, dikurangi Rp40.000 biaya penawaran pada empat pelanggan yang keliru ditandai dan Rp200.000 nilai dua pelanggan yang terlewat.
  4. Pelajaran metriknya: bila keberhasilan proyek didefinisikan sebagai akurasi, kedua model terlihat hampir sama (80% lawan 85%) dan pemilik kedai akan memilih yang murah. Definisi keberhasilan yang tepat — “menyelamatkan minimal Rp250.000 per bulan” — langsung membedakan model yang berguna dari model yang hanya rajin menebak.

Memilih Metrik untuk Setiap Kasus #

Tidak ada satu metrik yang cocok untuk semua masalah; metrik mengikuti bentuk keputusan yang menunggu hasilnya. Panduan praktisnya begini:

KasusMetrik proksi yang lazimMetrik sesungguhnya yang dituju
Prediksi pelanggan berhenti (churn)recall, precision, F1pelanggan terselamatkan dikurangi biaya penawaran
Peramalan permintaan harianMAE, RMSE, MAPEbiaya stok menganggur dan penjualan yang hilang
Segmentasi pelanggansilhouette scorekenaikan respons kampanye antar segmen
Deteksi transaksi janggalprecision pada ambang tinggikerugian yang berhasil dicegah
Sistem rekomendasi menuclick-through rate pada uji cobanilai pesanan rata-rata pelanggan

Perhatikan pola pada kolom kanan: semuanya berdenar rupiah, pelanggan, atau unit nyata — bukan persentase kecocokan model. Metrik sesungguhnya biasanya butuh asumsi tambahan (nilai satu pelanggan, biaya satu penawaran), dan menetapkan asumsi itu bersama stakeholder justru bagian penting dari pekerjaan ini.

Kejatuhan Metrik Tunggal #

Satu angka yang menjadi satu-satunya tujuan akan didorong naik dengan cara apa pun — termasuk cara yang merusak tujuan aslinya. Model A di atas sudah memberi satu contoh: mengejar akurasi pada data timpang berakhir pada model yang mengabaikan kelas langka, padahal kelas langka itulah seluruh nilainya. Pola yang sama muncul di mana-mana: mengejar rata-rata ramalan bisa menyembunyikan hari-hari ekstrem yang justru paling merugikan; mengejar jumlah segmen bisa menghasilkan segmen yang tidak bisa ditindaklanjuti.

Metrik tunggal yang dipujaCara angka itu menipuMetrik penjaga yang sebaiknya dibawa
Akurasi pada data timpangcukup menebak kelas mayoritasrecall atau nilai bisnis pada kelas langka
Rata-rata galat ramalanhari ekstrem tersembunyi di balik rata-ratagalat maksimum atau galat persentil ke-95
Jumlah pelanggan barupelanggan baru bisa cepat pergi lagiretensi 30 hari kohort tersebut

Rangkuman #

  • Metrik keberhasilan ditetapkan sebelum analisis dimulai, bersama pemilik keputusan — bukan disesuaikan setelah angka keluar.
  • Metrik proksi (akurasi, MAE) memandu pekerjaan teknis, tetapi keberhasilan proyek diukur dengan metrik sesungguhnya yang berdenar pelanggan atau rupiah.
  • Pada data timpang, akurasi menipu: model yang selalu menebak kelas mayoritas mencatat 80% akurasi sambil membiarkan seluruh kerugian terjadi.
  • Satu metrik tunggal yang dipuja akan didorong dengan cara yang merusak; pasangkan dengan metrik penjaga yang tidak boleh memburuk.

Sasaran kini terdefinisi: pertanyaan terukur, metrik keberhasilan, dan metrik penjaganya. Sekarang kita bisa berbalik ke bahan bakunya — data apa yang ada, cukup tidak, dan dapat dipercaya tidak — sebelum satu baris analisis ditulis. Kita masuk ke sana pada chapter berikutnya: Mengumpulkan dan Memahami Data .

Referensi #

  1. scikit-learn — Model Evaluation: quantifying the quality of predictions