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