Tinh chỉnh quy trì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 48 trên 58.
Bạn có thể tinh chỉnh pipeline như mọi mô hình khác, bao gồm cả các bước làm sạch dữ liệu. Mỗi thiết lập được đặt tên theo bước của nó, tiếp theo là hai dấu gạch dưới, rồi đến tham số:
pipe = make_pipeline(SimpleImputer(), DecisionTreeClassifier(random_state=0))
grid = {"simpleimputer__strategy": ["mean", "median", "most_frequent"],
"decisiontreeclassifier__max_depth": [2, 4, 6, 8]}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)make_pipeline đặt tên cho từng bước theo tên lớp của bước đó, viết thường. Với 200 lần phóng tên lửa mô hình, đạt độ cao 300 m hay không, 12 cấu hình cho điểm:
Mỗi lần chia phần, toàn bộ pipeline đều được khớp lại, kể cả bộ điền giá trị thiếu, nên không phần nào nhìn trước các hàng dùng để kiểm tra nó.
Thử thách
Trung bìnhMột trường âm nhạc muốn biết học sinh học violin nào sẽ vượt qua kỳ thi trình độ. Đoạn code khởi đầu đọc ba giá trị k, nhưng tìm kiếm trên lưới qua một pipeline gặp lỗi.
- Sửa hai khóa của lưới để quá trình tìm kiếm tinh chỉnh chiến lược của bộ điền khuyết và số láng giềng của k-NN.
- In các thiết lập tốt nhất, độ chính xác qua kiểm định chéo và độ chính xác trên tập kiểm tra như bên dưới.
Một trường khác, với 2, 4, 6:
Best: mean fills, 6 neighbors
Cross-validated accuracy: 0.720
Test accuracy: 0.820Tự làm thử
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
# Học viên violin: đạt kỳ thi trình độ (1) hoặc không đạt (0); một số nhật ký luyện tập
# và điểm đọc bản nhạc tại chỗ bị thiếu
students = pd.read_csv("violins.csv")
X = students.drop(columns="passed")
y = students["passed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = [int(input()), int(input()), int(input())]
# Quá trình tìm kiếm này dừng vì lỗi: sửa lưới tham số
pipe = make_pipeline(SimpleImputer(), StandardScaler(), KNeighborsClassifier())
grid = {
"strategy": ["mean", "median"],
"n_neighbors": ks,
}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)
# 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ống4Hồi quy logistic
Dự đoán có hoặc khôngNgưỡng quyết địnhTrọng số là bằng chứngNhiều lớpÔn tập: Bộ lọc thư rác10Quy trình xử lý
Quy trình xử lýCột có kiểu dữ liệu hỗn hợpĐiền giá trị thiếu trong quy trìnhTinh chỉnh quy trìnhÔn tập: Làm sạch và dự đoán2Lá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