Tìm kiếm lưới
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 39 trên 58.
Tinh chỉnh thủ công nghĩa là lồng các vòng lặp vào nhau. GridSearchCV kiểm định chéo mọi tổ hợp cài đặt và giữ lại tổ hợp tốt nhất. Với 300 chuyến xe điện, đến muộn hoặc đúng giờ:
Một từ điển ánh xạ mỗi thiết lập đến các giá trị cần thử. min_samples_leaf là số hàng ít nhất mà một nút lá có thể chứa:
from sklearn.model_selection import GridSearchCV
grid = {"max_depth": [2, 4, 6], "min_samples_leaf": [1, 5, 20]}
search = GridSearchCV(DecisionTreeClassifier(random_state=0), grid, cv=5)
search.fit(X_train, y_train)
print(search.best_params_)
print(f"{search.best_score_:.3f}")
print(f"{search.score(X_test, y_test):.3f}")Kết quả in ra:
{'max_depth': 4, 'min_samples_leaf': 5}
0.876
0.813Quá trình tìm kiếm huấn luyện lại mô hình tốt nhất trên toàn bộ các hàng huấn luyện, nên search.score kiểm tra mô hình một lần. Hãy giữ lưới nhỏ: mỗi ô tốn 5 lần huấn luyện.
Thử thách
Trung bìnhMột nhóm vệ tinh gán nhãn các pixel là mây hoặc trời quang bằng k-NN. Chương trình đọc giá trị k lớn nhất cần thử; phần code ban đầu chia dữ liệu.
- Tìm kiếm theo lưới với mọi giá trị k lẻ từ 1 đến số đó, dùng
weightslà"uniform"hoặc"distance"(các láng giềng gần hơn được tính nhiều hơn),cv=5. - In ra 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, với 3 chữ số thập phân.
Với các pixel khác và 7:
Best k: 7, weights: distance
Cross-validated accuracy: 0.885
Test accuracy: 0.800Tự làm thử
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
max_k = int(input())
# Đừng thay đổi các dòng bên dưới: 360 điểm ảnh vệ tinh, mỗi điểm có 4 giá trị đo ánh sáng; nhãn 1 nghĩa là mây
X, y = make_classification(n_samples=360, n_features=4, n_informative=3, n_redundant=0,
flip_y=0.08, class_sep=0.7, random_state=1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# 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