Tôi hiểu tiền đề của thuật toán kNN cho dữ liệu không gian. Và tôi biết rằng tôi có thể mở rộng thuật toán đó để sử dụng trên bất kỳ biến dữ liệu liên tục nào (hoặc dữ liệu danh nghĩa với Hamming Khoảng cách). Tuy nhiên, chiến lược nào được sử dụng khi xử lý dữ liệu chiều cao hơn?
Ví dụ: giả sử tôi có một bảng dữ liệu (x [1], x [2], x [3], ..., x [n]) và tôi muốn xây dựng một bộ phân loại để dự đoán một trong những cột đó (nói x [n]). Sử dụng thuật toán kNN tôi sẽ chọn bất kỳ hai cột nào từ các cột còn lại (x [1] -x [n-1]) để luyện tập chống lại. Vì vậy, nói rằng tôi có thể chọn x [1] và x [2] và xây dựng một trình phân loại tắt chúng. Hoặc tôi có thể chọn x [1] và x [4] hoặc tôi có thể chọn x [5] và x [8], v.v. Tôi thậm chí có thể chọn chỉ một cột và tạo một phân loại từ đó, hoặc 3 cột và xây dựng một phân loại tắt đó. Có một lợi thế nào khi sử dụng các kích thước cao hơn (2D, 3D, v.v.) hay bạn chỉ nên xây dựng các phân loại thứ nguyên đơn x-1 và tổng hợp các dự đoán của chúng theo một cách nào đó?
Vì việc xây dựng tất cả các phân loại này từ tất cả các kết hợp tiềm năng của các biến sẽ tốn kém về mặt tính toán. Làm cách nào tôi có thể tối ưu hóa tìm kiếm này để tìm các trình phân loại kNN tốt nhất từ tập hợp đó? Và, một khi tôi tìm thấy một loạt các phân loại, cách tốt nhất để kết hợp đầu ra của chúng với một dự đoán duy nhất là gì? Bỏ phiếu có thể là câu trả lời đơn giản nhất cho câu hỏi này. Hoặc tính trọng số cho mỗi phiếu bầu theo tỷ lệ lỗi từ dữ liệu đào tạo cho mỗi phân loại.
Làm thế nào để hầu hết các triển khai áp dụng kNN cho việc học tập tổng quát hơn?