Chọn k cho KNN bằng cross-validation
Chọn hyperparameter k bằng validation thay vì nhìn accuracy trên train.
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: KNN k=1/k=3, stratified split, accuracy.
Nội dung đề bài
Mục tiêu kiến thức
Chọn hyperparameter k bằng validation thay vì nhìn accuracy trên train.
Mô tả bài toán
Đây là bài số 362 trong tầng Phân loại và học không giám sát. Bài dùng thư viện StratifiedKFold + cross_val_score + KNeighborsClassifier trên dữ liệu nhỏ, cố định và chạy CPU; mục tiêu là hiểu workflow chứ không bắt học viên tự viết lại thư viện.
Yêu cầu
Dùng StratifiedKFold có seed, tính accuracy cho từng k ứng viên và chọn điểm cao nhất; hòa thì chọn k nhỏ hơn.
def choose_knn_k(X, y, candidates, folds, seed):Input
X/y classification, list candidates, số fold và seed.
Output
Dictionary results theo thứ tự candidates và best_k.
Ràng buộc
Không fit/evaluate trên cùng train trong mỗi fold; giữ stratify.
Ví dụ
Giải thích
k=1,3,5 được chấm trên các fold giữ tỷ lệ lớp, rồi chọn mean accuracy cao nhất.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
