Ma trận nhầm lẫn trong sklearn

Nov 02 2020

Nếu bạn nhìn vào điều này:

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

Tôi cho rằng hàng nắm tay của mảng có nghĩa là "kiến được dự đoán" và cột đầu tiên là "thực sự là kiến" cột thứ hai là "thực sự là chim", v.v.

Vì vậy, hàng đầu tiên cột đầu tiên tôi đọc như "kiến dự đoán, là kiến", hàng đầu tiên thứ hai cột 0 tôi đọc là "kiến dự đoán là chim" là 0 phù hợp và cột thứ ba là "kiến dự đoán là mèo" là 0 nhưng nên là 1.

Những gì tôi đang làm sai trong khi hiểu ma trận nhầm lẫn.

Một ví dụ khác là cái này

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

Thậm chí không rõ ở đâu, thứ tự các lớp là gì.

Nguồn: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

chỉnh sửa : Trừ khi nó được hoán đổi. Hàng đầu tiên là "là kiến" chứ không phải "kiến dự đoán". Chỉ có điều trên wikipedia hệ thống là hàng đó là dự đoán.

Trả lời

2 ShahriyarMammadli Nov 02 2020 at 00:30

Bạn chỉ nhầm lẫn giữa thực tế và dự đoán. Mỗi hàng đại diện cho các giá trị thực tế của các phần tử riêng biệt trong mảng của bạn và các cột đại diện cho các giá trị dự đoán của chúng. Đó là,

  • Hàng đầu tiên: Có 2 con kiến và 2 mẫu được dự đoán là con kiến .
  • Hàng giây: Có 1 con chim và 1 mẫu dự đoán là mèo .
  • Hàng thứ ba: Có 3 con mèo , 1 mẫu dự đoán là kiến , 2 mẫu dự đoán là mèo .