Pengantar Matriks Kebingungan – Menuju AI

Pengantar Matriks Kebingungan – Menuju AI

Pengarang: Saurabh Saxena

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Apa itu Confusion Matrix, dan bagaimana cara memplotnya dengan Python?

Gambar oleh Penulis

Matriks Kebingungan adalah representasi visual dari nilai yang Diprediksi VS Aktual. Ini adalah alat evaluasi kinerja untuk algoritma klasifikasi, juga dikenal sebagai matriks kesalahan.

Tata letak tabel dua dimensi tentang berapa banyak kelas atau kategori yang diprediksi diprediksi dengan benar dan berapa banyak yang tidak memungkinkan visualisasi kinerja suatu algoritma, biasanya dalam pembelajaran yang diawasi.

Dalam analitik prediktif, Matriks Kebingungan untuk klasifikasi biner adalah tabel dengan dua baris dan dua kolom yang melaporkan jumlah positif benar, negatif palsu, positif palsu, dan negatif benar. Ini memungkinkan analisis yang lebih rinci daripada sekadar mengamati akurasi.

Gambar oleh Penulis

Mengapa Matriks Kebingungan atas Akurasi?

Metrik akurasi dapat menyesatkan jika digunakan untuk dataset Ketidakseimbangan ketika jumlah pengamatan di kelas yang berbeda sangat bervariasi. Sedangkan Confusion Matrix memberikan perbandingan rinci antara Positif dan Negatif.

Confusion Matrix terdiri dari empat metrik penting True Positive(TP), True Negative(TN), False Positive(FP), False Negative(FN).

Mari Pahami mereka dengan analogi di mana algoritma harus mengkategorikan apakah Seseorang Sehat atau Sakit.

Matriks Kebingungan untuk Klasifikasi Biner | Gambar oleh Penulis

(1) Benar Positif (TP)

Algoritma memprediksi “Orang Sakit” yang Sakit. Ini menyimpulkan bahwa algoritma telah mengklasifikasikan positif dengan benar. Ini adalah jumlah prediksi yang benar ketika kelas yang sebenarnya adalah positif.

(2) Negatif Benar (TN)

Algoritma memprediksi “Orang Sehat” yang Sehat. Ini menyimpulkan bahwa algoritma telah mengklasifikasikan negatif dengan benar. Ini adalah jumlah prediksi yang benar ketika kelas sebenarnya negatif.

(3) Positif Palsu (FP)

Algoritma meramalkan “Orang Sakit” yang Sehat. Di sini algoritma memberikan alarm palsu dengan salah mengklasifikasikannya sebagai Positif, bukan Negatif. Ini adalah jumlah prediksi yang salah ketika kelas sebenarnya positif, juga disebut sebagai Kesalahan Tipe I.

(4) Negatif Palsu (FN)

Algoritma meramalkan “Orang Sehat” yang Sakit. Di sini algoritma melewatkan Orang Sakit dengan mengkategorikannya sehat. Ini adalah jumlah prediksi yang salah ketika kelas sebenarnya negatif, juga disebut sebagai Kesalahan Tipe II.

dari sklearn.datasets impor load_breast_cancer
dari sklearn.model_selection impor train_test_split
dari sklearn.linear_model impor LogisticRegression
dari sklearn.metrics impor confusion_matrix X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y,
ukuran_tes=0,33,
random_state=42)
lr= LogistikRegresi()
lr.fit(X_train,y_train)
y_pred=lr.predict(X_test)
kebingungan_matrix(y_test, y_pred) Keluaran:
Himpunan([[ 63, 4],
[ 3, 118]])

Confusion_matrix API di sklearn menyediakan larik sebagai output yang masing-masing memiliki TN, FP, FN, dan TP, dan hal yang sama dapat diplot menggunakan ConfusionMatrixDisplay API atau Heatmap API dari pustaka visualisasi apa pun.

Di bawah ini adalah metode python untuk mengevaluasi dan memplot matriks Confusion. Ini akan memberikan array tn, fp, fn, dan tp sebagai tipe pengembalian dan mencetak matriks kebingungan yang dibuat oleh dalam tema seaborn.

https://medium.com/media/e43191c1d0474d2d6784aa0364186ed1/href

dari sklearn.datasets impor load_breast_cancer
dari sklearn.model_selection impor train_test_split
dari sklearn.linear_model impor LogisticRegression
dari sklearn.metrics impor confusion_matrix X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y,
ukuran_tes=0,33,
random_state=42)
lr= LogistikRegresi()
lr.fit(X_train,y_train)
y_pred=lr.predict(X_test)
conf_mat, ax = confusion_matrix(y_test, y_pred)

Di bawah ini adalah output untuk kode

Matriks Kebingungan | Gambar oleh Penulis

Tujuannya adalah untuk menjaga nilai TP dan TN sebanyak mungkin.

Di blog ini, kami memahami apa itu Confusion Matrix dan Bagaimana kami dapat memplotnya dengan Python. Interpretasi dari True Positive(TP), True Negative(TN), False Positive(FP), dan False Negative(FN) adalah metrik bangunan dari Confusion Matrix.

Namun, beberapa metrik dapat diturunkan dari Confusion Matrix seperti Accuracy, Precision, Recall, ROC, dan banyak lagi. Silakan merujuk ke Deep dive to Confusion Matrix untuk detailnya.

Referensi:

[1] sklearn Confusion Matrix API. https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html#sklearn.metrics.confusion_matrix

[2] sklearn ConfusionMatrixDisplay API. https://scikit-learn.org/stable/modules/generated/sklearn.metrics.ConfusionMatrixDisplay.html#sklearn.metrics.ConfusionMatrixDisplay

[3] API Peta Panas seaborn. https://seaborn.pydata.org/generated/seaborn.heatmap.html

Pengantar Confusion Matrix awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jeffrey Hayes