Ma trận nhầm lẫn trong knn python là gì?

Sau khi tạo mô hình học máy, độ chính xác là thước đo được sử dụng để đánh giá mô hình học máy. Mặt khác, bạn không thể sử dụng độ chính xác trong mọi trường hợp vì nó sẽ gây hiểu nhầm. Bởi vì độ chính xác 99% có thể trông đẹp như một tỷ lệ phần trăm, nhưng hãy xem xét mô hình học máy được sử dụng để Phát hiện gian lận hoặc phát hiện tiêu thụ ma túy

Trong những tình huống quan trọng như vậy, tỷ lệ thất bại 1% có thể tạo ra tác động đáng kể

Ví dụ: nếu một mô hình dự đoán một giao dịch gian lận trị giá 10000 đô la là Không gian lận, thì đó không phải là một mô hình tốt và không thể được sử dụng trong sản xuất

Trong mô hình tiêu thụ ma túy, hãy xem xét liệu mô hình có dự đoán rằng người đó đã sử dụng ma túy nhưng thực tế không. Nhưng do Dự đoán sai của mô hình, người đó có thể bị bỏ tù vì tội không thực sự phạm phải

Trong các tình huống như vậy, bạn cần một số liệu tốt hơn độ chính xác để xác thực mô hình máy học.
Đây là lúc ma trận nhầm lẫn xuất hiện.

Trong hướng dẫn này, bạn sẽ tìm hiểu ma trận nhầm lẫn là gì, cách vẽ ma trận nhầm lẫn cho mô hình phân loại nhị phân và mô hình phân loại đa biến

Mục lục

  • Ma trận nhầm lẫn là gì?
  • Tạo mô hình phân loại lớp nhị phân
  • Vẽ ma trận nhầm lẫn cho các lớp nhị phân
  • Tạo mô hình phân loại cho nhiều lớp
  • Vẽ ma trận nhầm lẫn cho nhiều lớp
  • Vẽ ma trận nhầm lẫn mà không cần phân loại
  • Phần kết luận
  • Bạn cũng có thể thích

Ma trận nhầm lẫn là gì?

Ma trận nhầm lẫn là ma trận cho phép bạn hình dung hiệu suất của các mô hình học máy phân loại. Với hình ảnh trực quan này, bạn có thể hiểu rõ hơn về cách thức hoạt động của mô hình máy học của mình

Tạo mô hình phân loại lớp nhị phân

Trong phần này, bạn sẽ tạo một mô hình phân loại để dự đoán liệu một bệnh nhân có bị ung thư vú hay không, được biểu thị bằng các lớp đầu ra

    Model is Created
9 hoặc
y_pred = knn.predict(X_test)

y_pred
0

Bộ dữ liệu ung thư vú có sẵn trong thư viện bộ dữ liệu sklearn

Nó chứa tổng số 569 hàng dữ liệu. Mỗi hàng bao gồm 30 tính năng số và một lớp đầu ra. Nếu bạn muốn thao tác hoặc trực quan hóa tập dữ liệu sklearn, bạn có thể chuyển đổi nó thành khung dữ liệu gấu trúc và chơi xung quanh với các chức năng của khung dữ liệu gấu trúc

Để tạo mô hình, bạn sẽ tải tập dữ liệu sklearn, chia nó thành tập huấn luyện và tập thử nghiệm và điều chỉnh dữ liệu huấn luyện vào mô hình

y_pred = knn.predict(X_test)

y_pred
1

Sau khi tạo mô hình, bạn có thể sử dụng dữ liệu thử nghiệm để dự đoán các giá trị và kiểm tra xem mô hình đang hoạt động như thế nào

Bạn có thể sử dụng các lớp đầu ra thực tế từ dữ liệu thử nghiệm của mình và đầu ra dự đoán được trả về bởi phương thức

y_pred = knn.predict(X_test)

y_pred
2 để vẽ ma trận nhầm lẫn và đánh giá độ chính xác của mô hình

Sử dụng đoạn mã dưới đây để tạo mô hình

Đoạn trích

import numpy as np

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier as KNN

breastCancer = load_breast_cancer()

X = breastCancer.data
y = breastCancer.target

# Split the dataset into train and test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.4, random_state = 42)

knn = KNN(n_neighbors = 3)

# train the model
knn.fit(X_train, y_train)

print('Model is Created')

Mô hình KNeighborsClassifier được tạo cho dữ liệu đào tạo về bệnh ung thư vú

đầu ra

    Model is Created

Để kiểm tra mô hình đã tạo, bạn có thể sử dụng dữ liệu kiểm tra thu được từ phân tách thử nghiệm đào tạo và dự đoán đầu ra. Sau đó, bạn sẽ có các giá trị dự đoán

Đoạn trích

y_pred = knn.predict(X_test)

y_pred

đầu ra

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])

Bây giờ, hãy sử dụng các lớp được dự đoán và các lớp đầu ra thực tế từ dữ liệu thử nghiệm để trực quan hóa ma trận nhầm lẫn

Bạn sẽ học cách vẽ ma trận nhầm lẫn cho mô hình phân loại nhị phân trong phần tiếp theo

Vẽ ma trận nhầm lẫn cho các lớp nhị phân

Bạn có thể tạo ma trận nhầm lẫn bằng cách sử dụng phương thức mess_matrix() từ gói

y_pred = knn.predict(X_test)

y_pred
3. Phương thức
y_pred = knn.predict(X_test)

y_pred
4 sẽ cung cấp cho bạn một mảng mô tả Giá trị tích cực đúng, Giá trị tích cực sai, Giá trị phủ định sai và Giá trị phủ định đúng

** Đoạn trích **

y_pred = knn.predict(X_test)

y_pred
0

đầu ra

y_pred = knn.predict(X_test)

y_pred
1

Khi bạn đã tạo ma trận nhầm lẫn, bạn có thể sử dụng phương pháp

y_pred = knn.predict(X_test)

y_pred
5 có sẵn trong thư viện seaborn để vẽ ma trận nhầm lẫn

Phương thức seaborn heatmap() chấp nhận một tham số bắt buộc và một vài tham số tùy chọn khác

  • y_pred = knn.predict(X_test)
    
    y_pred
    6 – Tập dữ liệu hình chữ nhật có thể được ép thành mảng 2d. Tại đây, bạn có thể chuyển ma trận nhầm lẫn mà bạn đã có
  • y_pred = knn.predict(X_test)
    
    y_pred
    7 – Để ghi giá trị dữ liệu vào ô của ma trận được in. Theo mặc định, đây là
    y_pred = knn.predict(X_test)
    
    y_pred
    8
  • y_pred = knn.predict(X_test)
    
    y_pred
    9 – Đây là để biểu thị tên bản đồ màu matplotlib. Ở đây, chúng tôi đã tạo cốt truyện bằng cách sử dụng các sắc thái màu xanh lam

Phương thức

y_pred = knn.predict(X_test)

y_pred
5 trả về các trục matplotlib có thể được lưu trữ trong một biến. Ở đây, bạn sẽ lưu trữ trong biến
    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
1. Giờ đây, bạn có thể đặt tiêu đề, nhãn trục x và trục y cũng như nhãn đánh dấu cho trục x và trục y

  • Tiêu đề – Được sử dụng để gắn nhãn cho hình ảnh hoàn chỉnh. Sử dụng phương thức set_title() để đặt tiêu đề
  • Nhãn trục – Được sử dụng để đặt tên cho trục
        array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
               0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
               1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
               0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
               1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
               0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
               0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
               1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
               0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
               0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
               0, 1, 0, 0, 1, 1, 0, 1])
    2 hoặc trục
        array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
               0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
               1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
               0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
               1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
               0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
               0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
               1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
               0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
               0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
               0, 1, 0, 0, 1, 1, 0, 1])
    3. Sử dụng set_xlabel() để đặt nhãn trục x và set_ylabel() để đặt nhãn trục y
  • Đánh dấu nhãn – Được sử dụng để biểu thị các điểm dữ liệu trên các trục. Bạn có thể chuyển các nhãn đánh dấu trong một mảng và nó phải theo thứ tự tăng dần. Bởi vì ma trận nhầm lẫn chứa các giá trị ở định dạng thứ tự tăng dần. Sử dụng trục x. set_ticklabels() để đặt nhãn đánh dấu cho trục x và trục y. set_ticklabels() để đặt nhãn đánh dấu cho trục y

Cuối cùng, sử dụng cốt truyện. phương thức show() để vẽ ma trận nhầm lẫn

Sử dụng đoạn mã dưới đây để tạo ma trận nhầm lẫn, đặt tiêu đề và nhãn cho trục, đặt nhãn đánh dấu và vẽ biểu đồ

Đoạn trích

y_pred = knn.predict(X_test)

y_pred
1

đầu ra

Ma trận nhầm lẫn trong knn python là gì?
Ma trận nhầm lẫn Seaborn với nhãn

Ngoài ra, bạn cũng có thể vẽ ma trận nhầm lẫn bằng ConfusionMatrixDisplay. from_predictions() có sẵn trong thư viện sklearn nếu bạn muốn tránh sử dụng seaborn

Tiếp theo, bạn sẽ học cách vẽ ma trận nhầm lẫn với tỷ lệ phần trăm

Vẽ ma trận nhầm lẫn cho các lớp nhị phân với tỷ lệ phần trăm

Mục tiêu của việc tạo và vẽ ma trận nhầm lẫn là để kiểm tra tính chính xác của mô hình học máy. Sẽ tốt hơn nếu trực quan hóa độ chính xác bằng tỷ lệ phần trăm thay vì chỉ sử dụng số. Trong phần này, bạn sẽ học cách vẽ ma trận nhầm lẫn cho các lớp nhị phân với tỷ lệ phần trăm.

Để vẽ ma trận nhầm lẫn với tỷ lệ phần trăm, trước tiên, bạn cần tính tỷ lệ phần trăm của Kết quả xác thực đúng, Kết quả tích cực sai, Kết quả phủ định sai và Kết quả phủ định thực. Bạn có thể tính tỷ lệ phần trăm của các giá trị này bằng cách chia giá trị cho tổng của tất cả các giá trị

Sử dụng phương pháp

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
4, bạn có thể tính tổng tất cả các giá trị trong ma trận nhầm lẫn

Sau đó, chuyển phần trăm của mỗi giá trị dưới dạng dữ liệu sang phương pháp

y_pred = knn.predict(X_test)

y_pred
5 bằng cách sử dụng câu lệnh
    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
6

Sử dụng đoạn mã dưới đây để vẽ ma trận nhầm lẫn với tỷ lệ phần trăm

Đoạn trích

y_pred = knn.predict(X_test)

y_pred
5

đầu ra

Ma trận nhầm lẫn trong knn python là gì?
Seaborn Confusion Matrix với Nhãn

Vẽ ma trận nhầm lẫn cho các lớp nhị phân có nhãn

Trong phần này, bạn sẽ vẽ một ma trận nhầm lẫn cho các lớp Nhị phân với các nhãn Xác thực Đúng, Tích cực Sai, Phủ định Sai và Phủ định Đúng

Bạn cần tạo một danh sách các nhãn và chuyển đổi nó thành một mảng bằng cách sử dụng phương thức

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
7 với hình dạng
    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
8. Sau đó, mảng nhãn này phải được chuyển đến thuộc tính
    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
9. Điều này sẽ vẽ ma trận nhầm lẫn với chú thích nhãn

Sử dụng đoạn mã dưới đây để vẽ ma trận nhầm lẫn với các nhãn

Đoạn trích

y_pred = knn.predict(X_test)

y_pred
9

đầu ra

Ma trận nhầm lẫn trong knn python là gì?
Ma trận nhầm lẫn với nhãn

Vẽ ma trận nhầm lẫn cho các lớp nhị phân có nhãn và tỷ lệ phần trăm

Trong phần này, bạn sẽ học cách vẽ ma trận nhầm lẫn với nhãn, số lượng và tỷ lệ phần trăm

Bạn có thể sử dụng điều này để đo tỷ lệ phần trăm của từng nhãn. Ví dụ: bao nhiêu phần trăm dự đoán là Xác thực đúng, Tích cực sai, Phủ định sai và Phủ định đúng

Đối với điều này, trước tiên, bạn cần tạo một danh sách các nhãn, sau đó đếm từng nhãn trong một danh sách và đo tỷ lệ phần trăm của các nhãn trong danh sách khác

Sau đó, bạn có thể nén các danh sách khác nhau này để tạo nhãn. Nén có nghĩa là nối một mục từ mỗi danh sách và tạo một danh sách. Sau đó, danh sách này phải được chuyển đổi thành một mảng bằng phương pháp

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
7

Sau đó chuyển mảng cuối cùng tới thuộc tính

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
9. Điều này sẽ tạo ra một ma trận nhầm lẫn với thông tin về nhãn, số lượng và tỷ lệ phần trăm cho mỗi lớp

Sử dụng đoạn mã dưới đây để hình dung ma trận nhầm lẫn với tất cả các chi tiết

Đoạn trích

y_pred = knn.predict(X_test)

y_pred
2

đầu ra

Ma trận nhầm lẫn trong knn python là gì?
Ma trận nhầm lẫn với nhãn

Đây là cách bạn có thể tạo ma trận nhầm lẫn cho mô hình học máy phân loại nhị phân

Tiếp theo, bạn sẽ tìm hiểu về cách tạo ma trận nhầm lẫn cho mô hình phân loại với nhiều lớp đầu ra

Tạo mô hình phân loại cho nhiều lớp

Trong phần này, bạn sẽ tạo một mô hình phân loại cho nhiều lớp đầu ra. Nói cách khác, nó còn được gọi là các lớp đa biến

Bạn sẽ sử dụng bộ dữ liệu mống mắt có sẵn trong thư viện bộ dữ liệu sklearn

Nó chứa tổng số 150 hàng dữ liệu. Mỗi hàng bao gồm bốn tính năng số và một lớp đầu ra. Lớp đầu ra có thể là bất kỳ loại hoa Iris nào. Cụ thể là Iris Setosa, Iris Versicolor, Iris Virginica

Để tạo mô hình, bạn sẽ tải tập dữ liệu sklearn, chia nó thành tập huấn luyện và tập thử nghiệm và điều chỉnh dữ liệu huấn luyện vào mô hình

y_pred = knn.predict(X_test)

y_pred
1

Sau khi tạo mô hình, bạn có thể sử dụng dữ liệu thử nghiệm để dự đoán các giá trị và kiểm tra xem mô hình đang hoạt động như thế nào

Bạn có thể sử dụng các lớp đầu ra thực tế từ dữ liệu thử nghiệm của mình và đầu ra dự đoán được trả về bởi phương thức

y_pred = knn.predict(X_test)

y_pred
2 để vẽ ma trận nhầm lẫn và đánh giá độ chính xác của mô hình

Sử dụng đoạn mã dưới đây để tạo mô hình

Đoạn trích

    Model is Created
0

đầu ra

    Model is Created

Bây giờ mô hình được tạo ra

Sử dụng dữ liệu thử nghiệm từ phân tách thử nghiệm đào tạo và dự đoán giá trị đầu ra bằng phương pháp

y_pred = knn.predict(X_test)

y_pred
2 như hình bên dưới

Đoạn trích

y_pred = knn.predict(X_test)

y_pred

Bạn sẽ có đầu ra dự đoán dưới dạng một mảng. Giá trị 0, 1, 2 hiển thị danh mục dự đoán của dữ liệu thử nghiệm

đầu ra

    Model is Created
3

Bây giờ, bạn có thể sử dụng dữ liệu dự đoán có sẵn trong

y_pred = knn.predict(X_test)

y_pred
05 để tạo ma trận nhầm lẫn cho nhiều lớp

Vẽ ma trận nhầm lẫn cho nhiều lớp

Trong phần này, bạn sẽ học cách vẽ một ma trận nhầm lẫn cho nhiều lớp

Bạn có thể sử dụng phương thức

y_pred = knn.predict(X_test)

y_pred
4 có sẵn trong thư viện sklearn để tạo ma trận nhầm lẫn. Nó sẽ chứa ba hàng và cột đại diện cho danh mục hoa thực tế và danh mục hoa được dự đoán theo thứ tự tăng dần

Đoạn trích

    Model is Created
4

đầu ra

    Model is Created
5

Đầu ra bên dưới hiển thị ma trận nhầm lẫn cho số lượng loại hoa thực tế và dự đoán

Bạn có thể sử dụng ma trận này để vẽ ma trận nhầm lẫn bằng thư viện seaborn, như hình bên dưới

Đoạn trích

    Model is Created
6

đầu ra

Ma trận nhầm lẫn trong knn python là gì?

Vẽ ma trận nhầm lẫn cho nhiều lớp với tỷ lệ phần trăm

Trong phần này, bạn sẽ vẽ ma trận nhầm lẫn cho nhiều lớp với tỷ lệ phần trăm của mỗi lớp đầu ra. Bạn có thể tính tỷ lệ phần trăm bằng cách chia các giá trị trong ma trận nhầm lẫn cho tổng của tất cả các giá trị

Sử dụng đoạn mã dưới đây để vẽ ma trận nhầm lẫn cho nhiều lớp với tỷ lệ phần trăm

Đoạn trích

    Model is Created
7

đầu ra

Ma trận nhầm lẫn trong knn python là gì?

Vẽ ma trận nhầm lẫn cho nhiều lớp với số và tỷ lệ phần trăm

Trong phần này, bạn sẽ học cách vẽ ma trận nhầm lẫn với nhãn, số lượng và tỷ lệ phần trăm cho nhiều lớp

Bạn có thể sử dụng điều này để đo tỷ lệ phần trăm của từng nhãn. Ví dụ: bao nhiêu phần trăm dự đoán thuộc về từng loại hoa

Đối với điều này, trước tiên, bạn cần tạo một danh sách các nhãn, sau đó đếm từng nhãn trong một danh sách và đo tỷ lệ phần trăm của các nhãn trong danh sách khác

Sau đó, bạn có thể nén các danh sách khác nhau này để tạo nhãn nối. Nén có nghĩa là nối một mục từ mỗi danh sách và tạo một danh sách. Sau đó, danh sách này phải được chuyển đổi thành một mảng bằng phương pháp

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
7

Mảng cuối cùng này phải được chuyển đến thuộc tính

    array([0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1,
           1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1,
           0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
           1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
           0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0,
           0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,
           1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
           0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1,
           0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
           0, 1, 0, 0, 1, 1, 0, 1])
9. Điều này sẽ tạo ra một ma trận nhầm lẫn với thông tin về nhãn, số lượng và tỷ lệ phần trăm cho từng loại hoa

Sử dụng đoạn mã dưới đây để hình dung ma trận nhầm lẫn với tất cả các chi tiết

Đoạn trích

    Model is Created
8

đầu ra

Ma trận nhầm lẫn trong knn python là gì?

Đây là cách bạn có thể vẽ ma trận nhầm lẫn cho nhiều lớp với tỷ lệ phần trăm và số

Vẽ ma trận nhầm lẫn mà không cần phân loại

Để vẽ ma trận nhầm lẫn mà không có mô hình phân loại, hãy tham khảo câu trả lời StackOverflow này

Phần kết luận

Tóm lại, bạn đã học cách vẽ ma trận nhầm lẫn cho mô hình máy học với các lớp đầu ra nhị phân và nhiều lớp đầu ra

Bạn cũng đã học cách chú thích ma trận nhầm lẫn với nhiều chi tiết hơn như nhãn, số lượng của từng nhãn và tỷ lệ phần trăm của từng nhãn để trực quan hóa tốt hơn

Ma trận nhầm lẫn trong Python là gì?

Ma trận nhầm lẫn là gì? . Các hàng đại diện cho các lớp thực tế mà kết quả nên có. Trong khi các cột đại diện cho các dự đoán chúng tôi đã thực hiện. Sử dụng bảng này, thật dễ dàng để biết dự đoán nào sai. a table that is used in classification problems to assess where errors in the model were made. The rows represent the actual classes the outcomes should have been. While the columns represent the predictions we have made. Using this table it is easy to see which predictions are wrong.

Mục đích của một ma trận nhầm lẫn là gì?

Ma trận nhầm lẫn là một bảng được sử dụng để xác định hiệu suất của thuật toán phân loại . Ma trận nhầm lẫn trực quan hóa và tóm tắt hiệu suất của thuật toán phân loại.

ma trận nhầm lẫn đưa ra ví dụ là gì?

Ma trận nhầm lẫn là ma trận được sử dụng để xác định hiệu suất của các mô hình phân loại cho một tập hợp dữ liệu thử nghiệm nhất định . Nó chỉ có thể được xác định nếu biết giá trị thực của dữ liệu thử nghiệm. Bản thân ma trận có thể dễ hiểu nhưng các thuật ngữ liên quan có thể gây nhầm lẫn.

Ma trận nhầm lẫn trong học máy là gì?

Ma trận nhầm lẫn là ma trận N x N được sử dụng để đánh giá hiệu suất của mô hình phân loại, trong đó N là số lớp mục tiêu . Ma trận so sánh các giá trị mục tiêu thực tế với các giá trị được mô hình máy học dự đoán.