Khi thực hiện kNN, bạn cần ghi nhớ một điều, đó không phải là thuật toán có nguồn gốc toán học, mà là một trình phân loại / hồi quy đơn giản dựa trên một trực giác - hàm bên dưới không thay đổi nhiều khi các đối số không thay đổi nhiều Hay nói cách khác, hàm bên dưới là cục bộ gần như không đổi. Với giả định này, bạn có thể ước tính giá trị của hàm cơ bản trong bất kỳ điểm đã cho nào, bằng trung bình (có thể có trọng số) của các giá trị của các điểm k gần nhất.
Giữ điều này trong tâm trí, bạn có thể nhận ra rằng không có sự bắt buộc rõ ràng về những việc cần làm khi không có người chiến thắng rõ ràng trong việc bỏ phiếu đa số. Bạn luôn có thể sử dụng một k lẻ, hoặc sử dụng một số trọng số tiêm.
Trong trường hợp hàng xóm 3 đến 5 ở cùng một khoảng cách so với điểm quan tâm, bạn có thể chỉ sử dụng hai hoặc sử dụng tất cả 5. Một lần nữa, hãy nhớ rằng kNN không phải là một thuật toán xuất phát từ phân tích toán học phức tạp, mà chỉ là một trực giác đơn giản. Tùy thuộc vào cách bạn muốn đối phó với những trường hợp đặc biệt đó.
1| | x-y| |2
Cũng đã có một bài báo hay của Samory Kpotufe và Abdeslam Boularias trong năm nay về NIPS liên quan đến vấn đề tìm trọng số phù hợp. Trực giác chung của họ, là hàm cơ bản khác nhau theo các hướng khác nhau (nghĩa là các đạo hàm riêng khác nhau của nó có độ lớn khác nhau), do đó, sẽ rất khôn ngoan khi thay đổi số liệu / trọng số theo trực giác này. Họ tuyên bố thủ thuật này thường cải thiện hiệu suất của hồi quy kNN và hạt nhân, và tôi nghĩ rằng họ thậm chí còn có một số kết quả lý thuyết để sao lưu xác nhận này (mặc dù tôi không chắc những kết quả lý thuyết đó thực sự tuyên bố là gì, tôi không có thời gian để đi qua toàn bộ giấy tờ chưa). Bài viết có thể được tải xuống miễn phí từ các trang web của họ, hoặc sau khi "Trọng lượng Gradient giúp điều chỉnh các biến áp không đối xứng" của Google.
Bây giờ, bạn có thể sẽ muốn biết làm thế nào bạn có thể tìm đúng k, số liệu, trọng số, hành động để thực hiện khi có các trận hòa và như vậy. Điều đáng buồn là, về cơ bản, thật khó để đến đúng siêu âm sau một số suy nghĩ sâu sắc, có lẽ bạn sẽ cần phải kiểm tra các bó siêu âm khác nhau và xem cái nào hoạt động tốt trên một số xác nhận hợp lệ. Nếu bạn có một số tài nguyên tính toán và muốn tự động đến đúng các tham số ở một bộ siêu đường kính tốt, có một ý tưởng gần đây (mà tôi rất thích) để sử dụng các quy trình Gaussian để tối ưu hóa không có đạo hàm trong cài đặt đó.
Hãy để tôi giải thích - việc tìm tập hợp các siêu đường kính (nghĩa là giảm thiểu lỗi trên dữ liệu xác nhận), có thể được xem như là một vấn đề tối ưu hóa. Thật không may, trong cài đặt này, chúng tôi không thể lấy được độ dốc của hàm mà chúng tôi cố gắng tối ưu hóa (đó là điều chúng tôi thường muốn làm, để thực hiện giảm độ dốc hoặc một số phương pháp nâng cao hơn). Các quy trình Gaussian có thể được sử dụng trong cài đặt này, để tìm các bộ siêu đường kính, có cơ hội lớn, để thực hiện tốt hơn các quy trình tốt nhất mà chúng tôi đã tìm thấy cho đến thời điểm này. Do đó, bạn có thể chạy thuật toán với một số siêu đường kính, sau đó hỏi quy trình Gaussian để thử cái nào là tốt nhất để thử tiếp theo, thử những cái đó, v.v.
Để biết chi tiết, hãy tìm bài viết "Tối ưu hóa thực tế về thuật toán học máy" của tác giả Jasper Snoek, Hugo Larochelle và Ryan P Adams (cũng được tìm thấy trên trang web của họ hoặc thông qua Google).