#3 Machine Learning Evaluation

Muhammad Yunus
4 min readJan 12, 2020

Precision, Recall dan Confusion Matrix

https://en.wikipedia.org/wiki/Precision_and_recall

Hi, semuanya! kali ini kita mau melanjutkan tulisan sebelumnya tentang #2 Supervised VS Unsupervised VS Reinforcement ML. Tadinya sih mau masuk ke proses instalasi tool dan dan library Python untuk latihan Machine Learning, tapi kayaknya ada beberapa pendahuluan yang lumayan penting dan sebaiknya di fahami di awal sebelum terjun ke penulisan program.

Yak!! apa itu? yaitu tenatang Evaluasi model Machine Learning. Mari kita bayangkan. Kita di hadapkan pada kasus “Prediksi kredit macet pada pinjaman Bank”. Selanjutnya kita mempersiapkan dataset, mulai dari proses feature selection, dimensionality reduction, sampling dan lain sebagainya. Setelah itu dilakukan proses training dengan model yang dipilih, katakanlah kita menggunakan Support Vector Machine. Setelah model dihasilkan, bagaimana kita bisa mengukur performa dari model yang dibuat?

Oke, pertama kita buat statement dulu. Permasalahan yang kita hadapi adalah perihal klasifikasi (classification model) seperti contoh diatas, prediksi kredit macet pinjaman Bank misalanya. Jenis model lain seperti model regresi misalnya memiliki perlakuan yang berbeda.

Berbicara mengenai performa model Machine Learning pasti banyak yang mengira kuncinya adalah akurasi yang tinggi. Menurut saya ini tidak sepenuhnya tepat.

Akurasi klasifikasi adalah pembagian dari jumlah prediksi benar terhadap jumlah total prediksi. Akurasi bisa saja “menyesatkan”, dalam kasus dimana ketidakseimbangan kelas yang besar (large class imbalance). Model klasifikasi dapat memprediksi nilai pada kelas terbesar untuk semua prediksi dan bisa memberikan nilai akurasi yang tinggi dan tentu saja model yang dihasilkan dapat memprediksikan nilai yang salah, sehingga perlu metrik evaluasi lain yang dapat mengukur performa model klasifikasi yang kita buat.

Metrik yang dimaksudkan adalah Precision, Recall dan Confusion Matrix. Sebenarnya ada metrik lainya yang dapat digunakan, nampun 3 jenis metrik ini sudah cukup untuk langkah awal.

Ah, sebelum kita lanjutkan, ada baiknya kita bahas beberapa istilah yang akan sering di ulang-ulang nantinya, agar tidak menimbulkan kebingungan.

Binary Classification Problem

Dalam kasus binary classification seperti contoh prediksi kredit macet pinjaman bank, kita akan dihadapkan pada hasil prediksi berupa True Positive (TF), True Negative (TN), False Positive (FP), False Negative (FN).

Apa itu? sangat membingungkan, False Positive? meme ini mungkin bisa membantu. hehe…

Contoh kasus : Prediksi pasien hamil atau tidak.

  • True positives: model memprediksikan pasien hamil dan kenyataanya memang pasien hamil
  • False positives: model memprediksikan pasien hamil dan kenyataanya pasien tidak hamil
  • True negatives: model memprediksikan pasien tidak hamil dan kenyataanya pasien tidak hamil
  • False negatives: model memprediksikan pasien tidak hamil dan kenyataanya pasien hamil

kurang lebih seperti itulah ya…

Confusion Matrix

Nah setelah familiar dengan TP, FP, TN, FN, selanjutnya akan lebih mudah dalam memahami confusion matrix.

https://towardsdatascience.com/beyond-accuracy-precision-and-recall-3da06bea9f6c

Confusion Matrix merepresentasikan prediksi dan kondisi sebenarnya(aktual) dari data yang dihasilkan oleh algoritma ML. Berdasarkan Confusion Matrix, kita bisa menentukan Precision dan Recall.

Recall

Recall dapat didefinisikan sebagai rasio dari jumlah total contoh positif yang diklasifikasikan bernilai benar dibagi dengan jumlah total contoh positif. High Recall menunjukkan kelas dikenali dengan baik (FN rendah).

Precision

Precision merupakan pembagian dari jumlah total contoh positif yang diklasifikasikan bernilai benar dengan jumlah total contoh positif yang diprediksi. High Precision menunjukkan contoh berlabel positif memang positif (FP rendah).

High Recall, Low Precision

https://medium.com/@klintcho/explaining-precision-and-recall-c770eb9c69e9

Ini berarti sebagian besar data positif dikenali dengan baik (FN rendah) tetapi ada banyak False Positive (FP tinggi).

Contoh kasus : Model untuk klasifikasi kucing dan bukan kucing pada sebuah gambar.

Model dapat mengklasifikasikan banyak gambar kucing sebagai kucing tetapi banyak juga mengklasifikasikan ojek lain seperti kuda, kelinci, ayam dan lainya sebagai kucing.

Low Recall, High Precision:

https://medium.com/@klintcho/explaining-precision-and-recall-c770eb9c69e9

Model dapat mengklasifikasikan lebih sedikit data bernilai positif (FN tinggi) tetapi model mengklasifikasikan data positif benar-benar bernilai positif (FP rendah)

Contoh kasus : Model untuk klasifikasi kucing dan bukan kucing pada sebuah gambar.

Model dapat mengklasifikasikan hampir semua gambar kucing sebagai kucing.

Simpulan

Banyak hal yang bisa di dapatkan dari metrik Precision dan Recall, kita juga bisa menurunkan nya menjadi metrik lain yang dapat memberikan arti lebih banyak, contohnya adalah F1 — Score.

Namun demikin, berkenaan dengan Precision dan Recall sangat bergantung pada skenario yang kita miliki dan permasalahan apa yang sedang kita hadapi.

Adakalanya kita menginginkan model yang dapat memprediksi dengan sangat akurat dibandingkan mengambil semua hasil yang mungkin (High Precision) dan ada kalanya juga kita butuh mengambil semua hasil yang mungkin dibandingkan mengambil hasil yang bernilai benar saja(High Recall)

Sumber :

--

--

Muhammad Yunus

IoT Engineer, Software Developer & Machine Learning Enthusiast