Confussion matrix digunakan untuk mengukur kinerja algoritma binary klasifikasi atau dengan kata lain untuk target 2 kelas saja. Gambar dibawah ini merupakan confusion matrix dengan 4 kombinasi nilai prediksi dan nilai aktual yang berbeda.

Maksud dari istilah Tp, FP, FN, dan TN, misalkan pada kasus sederhana untuk memprediksi seorang pasien menderita penyakit diabetes atau tidak (hanya ada 2 pilihan saja, ya dan tidak)
- True Positive (TP): Merupakan data positif yang diprediksi benar. Contohnya, pasien menderita diabetes (class 1) dan model membuat prediksi bahwa pasien tersebut menderita diabetes (class 1).
- True Negative (TN): Merupakan data negatif yang diprediksi benar. Contohnya, pasien tidak menderita diabetes (class 2) dan model membuat prediksi bahwa pasien tersebut tidak menderita diabetes (class 2).
- False Postive (FP) — Type I Error: Merupakan data negatif namun diprediksi sebagai data positif. Contohnya, pasien tidak menderita diabetes (class 2) tetapi model memprediksi pasien tersebut menderita diabetes (class 1).
- False Negative (FN) — Type II Error: Merupakan data positif namun diprediksi sebagai data negatif. Contohnya, pasien menderita diabetes (class 1) tetapi model memprediksi pasien tersebut tidak menderita diabetes (class 2).
Sebagai contoh, sebuah model akan dilatih untuk memprediksi mengenai kondisi pasien sedang menderita diabetes atau tidak. Jika terdapat 20 pasien dengan 9 pasien positif diabetes dan 11 pasien negatif diabetes, maka contoh confusion matrix yang dihasilkan model seperti dibawah ini :

Untuk membaca tabel diatas yaitu
- dari 9 pasien positif diabetes, model memprediksi ada 3 pasien yang diprediksi negatif diabetes (FN), dan
- dari 11 pasien negatif diabetes, model memprediksi ada 2 pasien yang diprediksi positif diabetes (FP). Prediksi yang benar terletak pada tabel diagonal (garis bawah merah),
sehingga secara visual sangat mudah untuk melihat kesalahan prediksi karena kesalahan prediksi berada di luar tabel diagonal confusion matrix.
Accuracy
Contents
Accuracy menggambarkan seberapa akurat model dapat mengklasifikasikan dengan benar. Maka, accuracy merupakan rasio prediksi benar (positif dan negatif) dengan keseluruhan data. Dengan kata lain, accuracy merupakan tingkat kedekatan nilai prediksi dengan nilai aktual (sebenarnya), rumusnya yaitu
![]()
Precision (Positive Predictive Value)
Precision menggambarkan tingkat keakuratan antara data yang diminta dengan hasil prediksi yang diberikan oleh model. Maka, precision merupakan rasio prediksi benar positif dibandingkan dengan keseluruhan hasil yang diprediksi positf. Dari semua kelas positif yang telah di prediksi dengan benar, berapa banyak data yang benar-benar positif, rumusnya yaitu
![]()
Recall atau Sensitivity (True Positive Rate)
Recall menggambarkan keberhasilan model dalam menemukan kembali sebuah informasi. Maka, recall merupakan rasio prediksi benar positif dibandingkan dengan keseluruhan data yang benar positif, rumusnya yaitu
![]()
Menghitung Confussion Matrix di R
Salah satu package untuk mempermudah perhitungan confussion matrix di R yaitu package caret. Kalian harus install terlebih dahulu menggunakan perintah install.packages('caret') lebih jelasnya disini untuk melakukan install package di R. Misalkan kita punya dataset dengan 10 records yaitu yang disimpan dalam format excel
no target prediksi 1 1 1 1 2 2 1 1 3 3 1 0 4 4 0 0 5 5 1 0 6 6 0 0 7 7 0 0 8 8 1 1 9 9 1 0 10 10 1 0
Sesuai dengan data diatas, maka hasil untuk confussion matrix yaitu
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 3 4
1 0 3
Accuracy : 0.6
95% CI : (0.2624, 0.8784)
No Information Rate : 0.7
P-Value [Acc > NIR] : 0.8497
Kappa : 0.3103
Mcnemar's Test P-Value : 0.1336
Sensitivity : 1.0000
Specificity : 0.4286
Pos Pred Value : 0.4286
Neg Pred Value : 1.0000
Prevalence : 0.3000
Detection Rate : 0.3000
Detection Prevalence : 0.7000
Balanced Accuracy : 0.7143
'Positive' Class : 0
Kode yang digunakan secara lengkap yaitu
library(openxlsx)
library(caret)
hasil = read.xlsx('data.xlsx')
CM = confusionMatrix(factor(hasil$prediksi),factor(hasil$target))
CM
ref:
https://en.wikipedia.org/wiki/Confusion_matrix