Menu
CoddyTech

Chữ số viết tay

Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 57 trên 58.

Máy phân loại thư của bưu điện đọc các chữ số mã bưu chính viết tay từ ảnh quét 8 x 8 mà bạn đã xem trong bài học Digits at a Glance, load_digits:

Hai mươi chữ số viết tay trong hai hàng, từ 0 đến 9 do hai người viết khác nhau viết, được thể hiện dưới dạng ảnh quét nhỏ màu xám với các khối vuông; một vài chữ số trông rất giống những chữ số khác

Có hai ứng viên cho công việc này: k-NN với giá trị k do một kỹ sư đề xuất, và một rừng ngẫu nhiên gồm 100 cây.

Lần này, các lỗi đều quan trọng. Văn phòng cần biết mô hình nào công bằng hơn, điểm số của mô hình trên những bản quét chưa từng thấy và nhầm lẫn phổ biến nhất của mô hình, vì vậy một người sẽ xem các chữ số đó.

challenge icon

Thử thách

Khó

Chương trình đọc k của kỹ sư; phần code khởi đầu tạo một biểu đồ có tiêu đề.

  1. Tách một phần tư dữ liệu làm tập kiểm tra theo phương pháp phân tầng, random_state=0.
  2. Đánh giá chéo k-NN với k đó và một rừng gồm 100 cây (random_state=0), dùng 5 phần, trên các hàng dữ liệu huấn luyện. In giá trị trung bình của mỗi mô hình (3 chữ số thập phân) và mô hình thắng cuộc.
  3. Huấn luyện mô hình thắng cuộc và in độ chính xác trên tập kiểm tra.
  4. In lỗi lớn nhất trong ma trận nhầm lẫn của tập kiểm tra, sau đó vẽ ma trận lên ax và hiển thị.

Với một máy khác và 3:

k-NN: CV accuracy 0.979
Random forest: CV accuracy 0.968
Winner: k-NN
Test accuracy: 0.976
Most confused: 7 read as 2 (3 times)

Sau đó Coddy báo cáo ma trận của bạn.

Tự làm thử

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

digits = load_digits()
X = digits.data
y = digits.target
k = int(input())

fig, ax = plt.subplots()
ax.set_title("Test Digits")

# Viết code của bạn bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Học có giám sát

Tự luyện tập: Trình biên dịch Python online