Saya menggunakan matriks kebingungan untuk memeriksa kinerja classifier saya.
Saya menggunakan Scikit-Learn, saya agak bingung. Bagaimana saya bisa menafsirkan hasil dari
from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])
Bagaimana saya bisa mengambil keputusan apakah nilai prediksi ini baik atau tidak.
predictive-models
prediction
confusion-matrix
pengguna3378649
sumber
sumber
Jawaban:
Matriks kebingungan adalah cara mentabulasi jumlah kesalahan klasifikasi, yaitu, jumlah kelas prediksi yang berakhir di nampan klasifikasi yang salah berdasarkan kelas yang benar.
Sementara sklearn.metrics.confusion_matrix menyediakan matriks numerik, saya merasa lebih berguna untuk menghasilkan 'laporan' menggunakan yang berikut:
yang mengakibatkan:
Ini memungkinkan kita untuk melihat bahwa:
y_true
dany_pred
, dari subtotal "Semua"Metode ini juga berfungsi untuk label teks, dan untuk sejumlah besar sampel dalam dataset dapat diperluas untuk memberikan laporan persentase.
Outputnya adalah:
di mana angka sekarang mewakili persentase (bukan jumlah kasus) dari hasil yang diklasifikasikan.
Meskipun perlu dicatat, bahwa
sklearn.metrics.confusion_matrix
output dapat langsung divisualisasikan menggunakan:sumber
AssertionError: arrays and names must have the same length
y_pred = pd.Series(...)
. Ini seharusnya bekerja sekarang.Pada y-axis confusion matrix memiliki nilai aktual, dan pada x-axis nilai diberikan oleh prediktor. Oleh karena itu, penghitungan diagonal adalah jumlah prediksi yang benar. Dan elemen-elemen diagonal adalah prediksi yang salah.
Dalam kasus Anda:
sumber
Saya ingin menentukan secara grafis kebutuhan untuk memahami ini. Ini adalah matriks sederhana yang perlu dipahami dengan baik sebelum mencapai kesimpulan. Jadi, inilah versi jawaban di atas yang dapat dijelaskan dan disederhanakan.
sumber