Matriks kebingungan di sklearn

Nov 02 2020

Jika Anda melihat ini:

>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

Saya kira baris pertama dari array berarti "semut yang diprediksi" dan kolom pertama adalah "sebenarnya adalah semut" kolom kedua adalah "sebenarnya adalah burung" dll.

Jadi baris pertama kolom pertama 2 saya baca seperti "prediksi semut, adalah semut", baris pertama kolom kedua 0 yang saya baca sebagai "semut didahului burung" adalah 0 yang cocok, dan kolom ketiga "prediksi semut adalah kucing" adalah 0 tetapi harus menjadi 1.

Apa yang saya lakukan salah saat memahami matriks kebingungan.

Contoh lainnya adalah ini

>>> 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]])

Dimana bahkan tidak jelas, apa urutan kelas.

Sumber: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

edit : Kecuali jika ditukar. Baris pertama adalah "adalah semut" bukan "semut yang diprediksi". Hanya yang di wikipedia sistem adalah baris itu adalah prediksi.

Jawaban

2 ShahriyarMammadli Nov 02 2020 at 00:30

Anda hanya bingung sebenarnya dan prediksi. Setiap baris mewakili nilai sebenarnya dari elemen berbeda dalam larik dan kolom mewakili nilai prediksi dari mereka. Itu adalah,

  • Baris pertama: Ada 2 semut , dan 2 sampel diperkirakan semut .
  • Baris detik: Ada 1 ekor burung dan 1 sampel diperkirakan kucing .
  • Baris ketiga: Ada 3 kucing , 1 sampel diprediksi semut , 2 sampel diprediksi sebagai kucing .