Jumat, 18 Oktober 2019

Cara Menghitung Confussion Matrix


Pada kasus klasifikasi dengan target hanya terdiri dari 2 kelas saja {-1,+1} dengan evaluasi dilakukan  menggunakan Confusion Matrix berisi informasi tentang kondisi yang sebenarnya dan prediksi kondisi dalam sistem klasifikasi. Tabel confusion matrix untuk data dengan jumlah 2 kelas prediksi (Negatif dan Positif).


 
Keterangan :
A = jumlah kondisi negatif yang terprediksi benar (Negatif) True Negatif
B = jumlah kondisi negatif yang terprediksi salah (Positif)  False Negatif
C = jumlah kondisi positif yang terprediksi salah (Negatif) False Positif
D = jumlah kondisi positif yang terprediksi benar (Positif) True Positive


Pengujian dalam penelitian perlu dilakukan evaluasi dengan menggunakan pengukuran 4 komponen yaitu akurasi, spesifikasitas, presisi dan sensitivitas

Akurasi merupakan presentas dari prediksi yang benar ( positif dan negatif ) berdasarkan kondisi yang ada atau keseluruhan data.

 
Sensitivitas (Recall/True positive rate) berguna untuk mengukur proporsi atau rasio prediksi benar positif dibandingkan dengan keseluruhan data yang benar positif.
 

Spesifitas (True negative rate) merupakan kebalikan dari sensitivitas yaitu untuk mengukur proporsi atau rasio dari kebenaran memprediksi negatif dibandingkan dengan keseluruhan data negatif
 

Presisi adalah menghitung proporsi atau rasio prediksi benar positif dibandingkan dengan keseluruhan hasil yang diprediksi positif


Berikut contoh perhitungannya.
Kode:

clc;clear all;close all;
target = [1;1;-1;-1;-1;1;1]
prediksi = [1,-1,1,-1,1,1,1]
 
[akurasi,sensifitas,spesifitas,presisi] = hitungakurasi(target,prediksi)
 
function [akurasi,sensifitas,spesifitas,presisi]=hitungakurasi(t,p)
    t = t(:);
    p = p(:);
    data = [t,p];
    
    true_positif = [1,1];
    true_negatif = [-1,-1];
    false_positif = [1,-1];
    false_negatif = [-1,1];
    
    
    %jumlah kondisi negatif yang terprediksi benar
    a = (data==true_negatif);
    a = sum(a(:,1).*a(:,2));
 
    %jumlah kondisi negatif yang terprediksi salah
    b = (data==false_negatif);
    b = sum(b(:,1).*b(:,2));
 
    %jumlah kondisi positif yang terprediksi salah
    c = (data==false_positif);
    c = sum(c(:,1).*c(:,2));
    
    %jumlah kondisi positif yang terprediksi benar
    d = (data==true_positif);
    d = sum(d(:,1).*d(:,2));
 
    akurasi = (a+d)/(a+b+c+d);
    sensifitas = d /(c+d);
    spesifitas = a /(a+b);
    presisi = d /(b+d);
 
end


Hasil:


target =

     1
     1
    -1
    -1
    -1
     1
     1


prediksi =

     1    -1     1    -1     1     1     1


akurasi =

    0.5714


sensifitas =

    0.7500


spesifitas =

    0.3333


presisi =

    0.6000




Tidak ada komentar: