Mengungkap Matriks Kebingungan dalam Pembelajaran Mesin [Menakjubkan]

Diterbitkan: 2020-12-07

Machine Learning adalah istilah umum di mana ia mengumpulkan pemrosesan Data, memperoleh wawasan yang berarti dari Data, dan pemodelan Data. Setelah selesai dengan pemodelan Data, model perlu diukur untuk evaluasi kinerjanya, dan parameter berbasis industri lainnya dan salah satu metrik yang paling umum adalah Matriks Kebingungan.

Daftar isi

Apa itu Matriks Kebingungan dan Mengapa Digunakan?

Ini adalah metrik kinerja yang digunakan dalam masalah klasifikasi di mana kelas keluaran mungkin dua atau lebih dan matriks ini mewakili semua kombinasi nilai yang diprediksi oleh model dengan nilai aktual yang terkait dengan input itu. Ini disebut 'matriks kebingungan' karena menurut definisi tampaknya mudah, tetapi ketika kami bergerak maju untuk mendapatkan parameter yang lebih berharga, kebingungan muncul mengenai parameter mana yang paling cocok di tempat tertentu.

Ini digunakan di tempat-tempat di mana masalah klasifikasi sangat tidak seimbang dan satu kelas mendominasi kelas lainnya. Dalam skenario seperti itu, Anda mungkin terkejut melihat akurasi model memuncak pada 99% tetapi dalam kenyataannya, model sangat bias terhadap kelas dominan. Sangat kecil kemungkinan Anda akan mendapatkan prediksi untuk kelas minoritas. Oleh karena itu, untuk menguji set data yang tidak seimbang, kami mempertimbangkan matriks kebingungan.

Struktur Matriks Kebingungan

Ukuran matriks berbanding lurus dengan jumlah kelas keluaran. Ini adalah matriks persegi di mana kita menganggap tajuk kolom sebagai nilai aktual dan tajuk baris sebagai prediksi model. Nilai yang benar dan diprediksi benar oleh model adalah True Positives (TP) , prediksi nilai negatif yang benar adalah True Negatives (TN) , nilai yang negatif tetapi diprediksi benar adalah False Positives (FP) dan nilai positif yang diprediksi sebagai negatif adalah Negatif Palsu (FN) . Lihat gambar ini:

Baca: Jenis algoritma klasifikasi dalam pembelajaran mesin

Apa yang bisa kita pelajari dari ini?

Sebuah pertanyaan yang valid muncul bahwa apa yang bisa kita lakukan dengan matriks ini. Ada beberapa terminologi penting berdasarkan ini:

  1. Presisi: Ini adalah bagian dari nilai yang diidentifikasi oleh model sebagai benar dan relevan dengan solusi pernyataan masalah. Kami juga dapat mengutip ini sebagai nilai, yang merupakan bagian dari total hasil positif yang diberikan oleh model dan positif. Oleh karena itu, kita dapat memberikan rumusnya sebagai TP/ (TP + FP).
  2. Ingat: Ini adalah bagian dari nilai yang diidentifikasi dengan benar sebagai positif oleh model. Ini juga disebut sebagai True Positive Rate atau Sensitivitas. Rumusnya menjadi TP/ (TP+FN).
  3. Skor F-1: Ini adalah rata-rata harmonik dari Precision dan Recall. Artinya, jika kita membandingkan dua model, maka metrik ini akan menekan nilai ekstrem dan mempertimbangkan Positif Palsu dan Negatif Palsu pada saat yang bersamaan. Itu dapat dikutip sebagai 2*Precision*Recall/ (Precision+Recall).
  4. Akurasi: Ini adalah bagian dari nilai yang diidentifikasi dengan benar terlepas dari apakah itu positif atau negatif. Ini berarti bahwa semua True positive dan True negative termasuk dalam hal ini. Rumusnya adalah (TP+TN)/ (TP+TN+FP+FN).

Dari semua istilah, presisi dan recall paling banyak digunakan. Tradeoff mereka adalah ukuran yang berguna dari keberhasilan prediksi. Model yang diinginkan seharusnya memiliki presisi tinggi dan daya ingat tinggi, tetapi ini hanya dalam data yang dapat dipisahkan secara sempurna. Dalam kasus penggunaan praktis, data sangat tidak terorganisir dan tidak seimbang.

Bagaimana cara membuat kode untuk Confusion Matrix dengan Python?

Pustaka sklearn menyediakan berbagai fungsi untuk melakukan semua tugas pembelajaran mesin dengan akurasi tertinggi dan hampir semuanya telah diimplementasikan di sini. Pertimbangkan dataset Iris yang terkenal dengan semua pernyataan impor yang sudah dilakukan, kode untuk matriks kebingungan adalah:

iris = datasets.load_iris()

X = iris.data

y = iris.target

class_names = iris.target_names

X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )

classifier = svm.SVC (kernel = 'linear' , C = 0,01 ) . cocok (X_train, y_train)

plot_confusion_matrix(classifier, X_test, y_test,display_labels = class_names,cmap = plt . cm . Blues)

Catatan: Matriks yang dikembalikan oleh ini memiliki sisi terbalik, di sini di sebelah kiri kami memiliki nilai aktual dan di atas, kami memiliki nilai prediksi. Jika Anda ingin menghindari kebingungan, jalankan fungsi ini untuk mendapatkan ringkasan terperinci (laporan klasifikasi) daripada menghitungnya secara manual:

print(laporan_klasifikasi(y_true=y_test, y_pred=y_pred, target_names=class_names))

Baca Juga : Algoritma Deep Learning

Yang mana yang harus digunakan dan di mana?

Ini adalah pertanyaan paling umum yang muncul saat memodelkan Data dan solusinya terletak pada domain pernyataan masalah. Pertimbangkan dua kasus ini:

  1. Misalkan Anda memprediksi apakah orang tersebut akan mendapatkan serangan jantung. Dalam skenario ini, Anda tidak dapat melakukan kesalahan klasifikasi dan semua prediksi yang dibuat harus akurat. Dengan demikian, biaya Negatif Palsu tinggi, sehingga orang tersebut rentan terhadap serangan tetapi diperkirakan aman. Kasus-kasus ini harus dihindari. Dalam situasi ini, kita membutuhkan model dengan daya ingat yang tinggi.
  2. Misalkan mesin pencari memberikan hasil acak yang semuanya diprediksi positif oleh model, maka sangat kecil kemungkinan pengguna akan mengandalkannya. Oleh karena itu, dalam skenario ini, kami membutuhkan model dengan presisi tinggi agar pengalaman pengguna meningkat, dan situs web tumbuh ke arah yang benar.

Kesimpulan

Matriks kebingungan adalah metode yang bagus untuk mengevaluasi model klasifikasi. Ini memberikan wawasan aktual tentang seberapa akurat model telah mengklasifikasikan kelas berdasarkan input yang diberikan dan bagaimana kelas ini dapat salah diklasifikasikan.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang pembelajaran mesin, lihat PG Diploma IIIT-B & upGrad dalam Pembelajaran Mesin & AI yang dirancang untuk para profesional yang bekerja dan menawarkan 450+ jam pelatihan ketat, 30+ studi kasus & tugas, IIIT- B Status alumni, 5+ proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Pimpin Revolusi Teknologi Berbasis AI

DIPLOMA PG DALAM PEMBELAJARAN MESIN DAN KECERDASAN BUATAN
Belajarlah lagi