Chọn mô hình
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 52 trên 58.
Có nhiều họ mô hình có thể phân loại chim cánh cụt. Mô hình nào phù hợp nhất? Hãy chia dữ liệu cho từng mô hình thành các phần và các lượt giống nhau, rồi so sánh, như với các mô hình phân loại rượu vang này:
Giá trị trung bình cao nhất sẽ thắng. Độ lệch chuẩn nhỏ cho thấy mô hình thắng ở mọi fold, chứ không chỉ ở một lần chia dữ liệu may mắn.
pipe = make_pipeline(prep, model)
scores = cross_val_score(pipe, X_train, y_train, cv=5)Mỗi lượt chia đều huấn luyện lại các quy trình trên phần dữ liệu huấn luyện riêng, nên mọi điểm số đều đáng tin cậy. Dữ liệu chim cánh cụt kiểm tra vẫn được giữ nguyên.
Thử thách
Trung bìnhCó bốn ứng viên muốn nhận công việc này. Phần code khởi đầu đã có sẵn các làn xử lý, danh sách names và models, đồng thời đọc số lượng fold.
- Với mỗi ứng viên, hãy đánh giá chéo pipeline gồm
prepvà mô hình đó trên các hàng dữ liệu huấn luyện. - In giá trị trung bình và độ lệch chuẩn của mô hình, với 3 chữ số thập phân.
- In ứng viên chiến thắng: mô hình có giá trị trung bình cao nhất.
Với một đàn chim cánh cụt khác và 5 fold:
k-NN: mean 0.951, std 0.031
Logistic regression: mean 0.964, std 0.012
Random forest: mean 0.958, std 0.027
Decision tree: mean 0.902, std 0.048
Winner: Logistic regressionTự làm thử
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
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.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
# Đàn chim cánh cụt từ Meet the Penguins, 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ừ Prepare the Data: hai luồng 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)])
# Các mô hình ứng viên
names = ["k-NN", "Logistic regression", "Random forest", "Decision tree"]
models = [KNeighborsClassifier(), LogisticRegression(max_iter=1000),
RandomForestClassifier(n_estimators=100, random_state=0), DecisionTreeClassifier(random_state=0)]
folds = int(input())
# Viết code của bạn bên dưới
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
1Mô hình đầu tiên của bạn
Học từ ví dụTập huấn luyện và tập kiểm traHuấn luyện và dự đoánChấm điểm mô hìnhÔn tập: Bộ sắp xếp hạt giống2Láng giềng gần nhất
Cách k-NN đưa ra quyết địnhChọn kRanh giới quyết địnhChuẩn hóa dữ liệu cho láng giềngÔn tập: láng giềng với dữ liệu rượu vang5Đánh giá bộ phân loại
Ma trận nhầm lẫnĐộ chính xác và độ thu hồiĐiểm F1Các lớp mất cân bằngĐường cong ROCÔn tập: Bài kiểm tra sàng lọc11Dự án: Các loài chim cánh cụt
Làm quen với chim cánh cụtChuẩn bị dữ liệuChọn mô hìnhTinh chỉnh mô hình tốt nhấtĐưa mô hình vào sử dụng3Hồi quy tuyến tính
Dự đoán các con sốNhiều đặc trưngĐo lường sai sốBiểu đồ phần dưÔn tập: Thuê xe đạp6Cây quyết định
Cây đặt câu hỏiĐọc câyĐộ sâu của câyTầm quan trọng của đặc trưngÔn tập: quyết định cho vay9Các mô hình tổ hợp
Rừng ngẫu nhiênVì sao rừng hoạt động hiệu quảTăng cường độ dốcÔn tập: Người kiểm lâm rừng12Thử thách cuối cùng
Tiến triển của bệnh tiểu đườngPhê duyệt tín dụngChữ số viết tayKhách hàng rời bỏTự luyện tập: Trình biên dịch Python online