Dự đoán nhãn bằng bình chọn của k láng giềng gần nhất
K láng giềng gần nhất (k-NN) là mô hình học máy không cần huấn luyện: muốn dự đoán một
Tiến độ của tôi ở bài này
Điểm và code bạn nộp đượ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: python-basics, numpy-axis-reduction.
Nội dung đề bài
Mô tả bài toán
K láng giềng gần nhất (k-NN) là mô hình học máy không cần huấn luyện: muốn dự đoán một điểm mới, ta tìm k điểm gần nó nhất trong tập dữ liệu và cho chúng bình chọn. Bài này luyện đúng một bước dự đoán đó trên điểm dữ liệu hai chiều.
Yêu cầu
Viết hàm knn_predict(points, labels, query, k=3) trả về nhãn được bình chọn nhiều nhất trong số k điểm gần query nhất. Khoảng cách dùng là khoảng cách Euclid thông thường trong mặt phẳng. Nếu có nhiều nhãn cùng số phiếu cao nhất, trả về nhãn của điểm gần nhất.
Quy ước nộp bài
Nộp hàm knn_predict trong solution.py. Hệ thống gọi hàm trực tiếp theo tên đối số và so nhãn trả về; không đọc dữ liệu từ stdin và không in ra stdout.
Input
- points: danh sách điểm, mỗi điểm là [x, y], từ 1 đến 20 điểm.
- labels: danh sách nhãn, cùng độ dài với points.
- query: một điểm [x, y] cần dự đoán nhãn.
- k: số láng giềng được bình chọn, số nguyên dương không lớn hơn số điểm.
Output
Nhãn dự đoán cho query, lấy đúng từ danh sách labels (giữ nguyên kiểu dữ liệu).
Ràng buộc
- Dữ liệu không có tình huống hòa phiếu, trừ quy tắc đã nêu ở phần Yêu cầu.
- k phải được dùng đúng như đầu vào, không được cố định bằng 3.
- Sắp xếp theo khoảng cách TĂNG dần trước khi lấy k điểm đầu.
Ví dụ 1
Input
knn_predict(points=[[0, 0], [1, 0], [2, 0], [3, 0]], labels=["A", "A", "B", "B"], query=[0.5, 0], k=3)
Output
"A"
Ví dụ 2
Input
knn_predict(points=[[0, 0], [5, 0], [6, 0]], labels=["X", "Y", "Y"], query=[5.5, 0], k=3)
Output
"Y"
Giải thích
Với points = [[0, 0], [1, 0], [2, 0], [3, 0]], labels = ["A", "A", "B", "B"], query = [0.5, 0] và k = 3: khoảng cách là 0.5, 0.5, 1.5, 2.5, nên ba láng giềng gần nhất có nhãn A, A, B và kết quả là "A".
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.
