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
0Bộ 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
1Sau 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ìnhSử 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
1Khi 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ẫnPhươ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
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
8y_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 lamy_pred = knn.predict[X_test] y_pred
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
2 hoặc trụcarray[[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 yarray[[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]]
- Đá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
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ẫnSau đó, 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]]
6Sử 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
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ãnSử 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
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]]
7Sau đó 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ớpSử 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
Đâ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
1Sau 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ìnhSử 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
3Bâ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ớpVẽ 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
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
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]]
7Mả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 hoaSử 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
Đâ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