Belajar Confusion Matrix Python

Confusion matrix (matriks kebingungan)adalah gambar atau tabel yang digunakan untuk mendeskripsikan kinerja sebuah penggolongan (klasifikasi). Ini biasanya diekstrak dari  dataset pengujian yang kebenaran dasarnya diketahui. 

Kita bandingkan setiap kelas dengan setiap kelas lainnya dan lihat berapa banyak sampel yang salah diklasifikasikan. Selama pembuatan tabel ini, kami sebenarnya menemukan beberapa metrik utama sangat penting di bidang pembelajaran mesin. 

Mari kita pertimbangkan kasus klasifikasi biner dengan output 0 atau 1: 

  • Positif benar: Ini adalah sampel yang kami prediksi 1 sebagai output dan kebenaran dasarnya adalah 1 juga. 
  • Negatif benar: Ini adalah sampel yang kami perkirakan 0 sebagai keluarannya dan kebenaran dasarnya adalah 0 juga. 
  • Positif palsu: Ini adalah sampel yang kami prediksi 1 sebagai output tetapi kebenaran dasarnya adalah 0. Ini juga dikenal sebagai kesalahan Tipe I. 
  • Negatif palsu: Ini adalah sampel yang kami perkirakan 0 sebagai keluarannya tetapi kebenaran dasarnya adalah 1. Ini juga dikenal sebagai kesalahan Tipe II.

Bergantung pada masalah yang dihadapi,  mungkin harus mengoptimalkan algoritme untuk mengurangi positif palsu atau tingkat negatif palsu. Misalnya, dalam sistem identifikasi biometrik, itu sangat penting untuk menghindari kesalahan positif, karena orang yang salah dapat mengaksesnya informasi sensitif. Mari kita lihat cara membuat matriks kebingungan. 

Buat file Python baru (kasih nama confusion_matrix.py) , impor paket yang dibutuhkan lalu ketik berikut:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report

# Define sample labels
true_labels = [2, 0, 0, 2, 4, 4, 1, 0, 3, 3, 3]
pred_labels = [2, 1, 0, 2, 4, 3, 1, 0, 1, 3, 3]

# Create confusion matrix
confusion_mat = confusion_matrix(true_labels, pred_labels)

# Visualize confusion matrix
plt.imshow(confusion_mat, interpolation='nearest', cmap=plt.cm.gray)
plt.title('Confusion matrix')
plt.colorbar()
ticks = np.arange(5)
plt.xticks(ticks, ticks)
plt.yticks(ticks, ticks)
plt.ylabel('True labels')
plt.xlabel('Predicted labels')
plt.show()

# Classification report
targets = ['Class-0', 'Class-1', 'Class-2', 'Class-3', 'Class-4']
print('\n', classification_report(true_labels, pred_labels,
target_names=targets))

 jika betul, nantinya akan muncul output sebagaimana berikut:

dan out put di terminal:


Referensi

  • Prateek Joshi. 2017. Artificial Intelligence with Python-Build real-world Artificial Intelligence applications with Python to intelligently interact with the world around you. Birmingham, Mumbai, India.




 

 

0 Komentar