Menu
CoddyTech

Đưa mô hình vào sử dụng

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 54 trên 58.

Những chú chim cánh cụt trong tập kiểm thử đã chờ suốt dự án. Hãy khớp pipeline đã tinh chỉnh với các hàng dữ liệu huấn luyện, sau đó đánh giá pipeline trên tập chim cánh cụt kiểm thử một lần: con số trung thực.

Sau đó xem mô hình nhầm ở đâu. Mô hình của phòng khám phân loại bệnh nhân thành khỏe mạnh, cảm lạnh hoặc cúm; các hàng là kết quả thực tế, các cột là dự đoán của mô hình:

Ma trận nhầm lẫn 3 x 3 của mô hình phòng khám trên 60 bệnh nhân kiểm tra, gồm khỏe mạnh, cảm lạnh và cúm: đường chéo có 20, 14 và 17 dự đoán đúng, còn 5 ca cảm lạnh bị phân loại thành cúm

Một chú chim cánh cụt mới là một bảng (table) chỉ có một hàng với các cột huấn luyện. predict đặt tên cho chú chim cánh cụt đó, còn predict_proba(new).max() cho biết mức độ chắc chắn: tỷ lệ của lớp có xác suất cao nhất, tức là tỷ lệ các láng giềng đồng ý trong k-NN.

challenge icon

Thử thách

Trung bình

Đích đến. model là quy trình đã được tinh chỉnh; chương trình khởi đầu đọc một chú chim cánh cụt mới vào new_penguin.

  1. Huấn luyện mô hình bằng các hàng dữ liệu huấn luyện. In độ chính xác trên tập kiểm tra (3 chữ số thập phân) và số chú chim cánh cụt trong tập kiểm tra mà mô hình gọi tên đúng.
  2. Vẽ ma trận nhầm lẫn của các dự đoán trên tập kiểm tra lên ax rồi hiển thị.
  3. Cho biết tên chú chim cánh cụt mới và độ chắc chắn của mô hình, tính theo phần trăm.

Với một đàn chim ở trạm khác:

Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)

và ma trận của đàn chim đó:

Ma trận nhầm lẫn có tiêu đề Test Penguins cho một trạm khác: gọi đúng tên 29 chim Adelie, 16 chim Chinstrap và 27 chim Gentoo, gọi nhầm 1 chim Adelie thành Chinstrap và 2 chim Chinstrap thành Adelie

Sau đó, Coddy sẽ báo kết quả của bạn. Ngôi sao trong Meet the Penguins có số đo 47.2, 18.0, 194 và 3650, ở Dream, giống cái. Hãy chạy chương trình với chú chim này: đó là loài nào?

Tự làm thử

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import ConfusionMatrixDisplay

# Đàn chim cánh cụt trong bài Gặp gỡ chim cánh cụt, cùng các đặc trưng và nhãn của chúng
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)

# Từ bài Chuẩn bị dữ liệu: hai nhánh xử lý
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])

# Từ bài Chọn mô hình và tinh chỉnh mô hình tốt nhất: k-NN với k = 7
model = make_pipeline(prep, KNeighborsClassifier(n_neighbors=7))

# Một chú chim cánh cụt mới được quan sát ngoài thực địa, biểu diễn dưới dạng bảng một hàng với các cột giống nhau
new_penguin = pd.DataFrame({
    "bill_length_mm": [float(input())],
    "bill_depth_mm": [float(input())],
    "flipper_length_mm": [float(input())],
    "body_mass_g": [float(input())],
    "island": [input()],
    "sex": [input()],
})

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

# 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