×

Menghitung Confussion Matrix

Menghitung Confussion Matrix

3,950 Views

Confussion Matrix  merupakan salah satu cara untuk mengukur kinerja algoritma klasifikasi yang lebih detail. 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

Kalau kalian ingin tahu apa itu True Negatif (TN); False Negatif (FN) bisa kunjungi ref: https://www.softscients.web.id/2018/01/compute-confusion-matrix.html. Pengujian dalam penelitian perlu dilakukan evaluasi dengan menggunakan pengukuran 4 komponen yaitu akurasi, spesifikasitas, presisi dan sensitivitas

Akurasi

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

    \[akurasi=\frac{a+d}{a+b+c+d}\]

Sensifitas

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

    \[sensifitas=\frac{d}{c+d}\]

Spesifitas

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

    \[spesifitas=\frac{a}{a+b}\]

Presisi

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

    \[presisi=\frac{d}{b+d}\]

Berikut contoh perhitungannya.

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

You May Have Missed