Mengetahui performa model yang dirancang merupakan kewajiban bagi perancang model. Fungsinya adalah menjamin kualitas model usulan sebelum diimplementasikan. Apalagi jika model yang dirancang merupakan mesin pemelajaran (machine learning) yang memang mengandalkan data latih dan data uji dalam proses pemodelannya.
Salah satu metode yang biasanya digunakan dalam menghitung performa sebuah model adalah matriks konfusi. Prinsipnya sangat sederhana yaitu membandingkan hasil prediksi dengan data aktual. Data aktual untuk beberapa bidang, misalnya segmentasi semantik, sering disebut ground truth.
Menghitung Matriks Konfusi
Prinsip kerja menghitung matriks konfusi adalah dengan membandingkan ‘head-to-head’ hasil prediksi dengan ground truth. Pertama-tama adalah mengkonversi matriks menjadi vektor. Biasanya untuk data citra yang berupa piksel 2D, sehingga harus dikonversi menjadi vektor baris/kolom.
-
prd=reshape(prediksi,1,[]);
-
gt=reshape(groundtruth,1,[]);
-
matriks=confusionmat(prd,gt)
Perhatikan fungsi confusionmat adalah fungsi membuat matriks konfusi dimana parameter pertama, prd akan menjadi baris pada matriks konfusi, sementara parameter kedua, gt, akan menjadi kolom.
Angka-angka di atas merupakan jumlah elemen, misalnya baris kedua kolom kedua (192965) artinya ada sebanyak 192.965 elemen dimana prediksi kelas ke-2 yang sama dengan aktualnya (kelas ke-2 juga). Secara gampangnya, diagonal pada matriks konfusi merepresentasikan dengan jumlah yang tepat.
Menghitung Akurasi
Karena diagonal merepresentasikan jumlah prediksi yang tepat, maka prosentase akurasi merupakan jumlah yang tepat (elemen diagonal) dibagi dengan seluruh data. Secara sederhana program menghitung matriks konfusi di atas dilanjutkan dengan:
-
[baris,kolom]=size(matriks);
-
total=0;
-
for i=1:baris
-
total=matriks(i,i)+total;
-
end
-
akurasi=total/(sum(matriks,’all’))
Jika dijalankan akan menghasilkan akurasi dari matriks konfusi tersebut. Untuk Matlab, menghitung akurasi dapat dilankukan langsung dengan fungsi classperf dari matriks yang akan dibandingkan.
Perhatikan ‘CorrectRate’ gambar di atas yang menunjukan akurasi sebesar 0,8966 atau 89,66%. Untuk melihat hasil akurasi dengan cara mengetik akurasi.CorrectRate pada command window. Bagaimana dengan perhitungan jenis lainnya? Akan kita bahas pada postingan berikutnya, yaitu Mean Intersection over Union (mIoU) yang saat ini menjadi standar perhitungan akurasi, khususnya segmentasi semantik.
Satu respons untuk “Matriks Konfusi (Confusion Matrix)”