KNN là một trong những thuật toán học giám sát được sử dụng hiệu quả trong nhiều trường hợp. Khi training, thuật toán này không học một điều gì từ dữ liệu training. Mọi tính toán được thực hiện khi nó cần dự đoán kết quả của dữ liệu mới.
KNN có thể áp dụng được vào cả 2 loại của bài toán học giám sát là phân loại và hồi quy.
Trong hệ thống của chúng ta, chúng ta sẽ sử dụng thuật toán KNN dưới dạng hồi quy. Thuật toán KNN được sử dụng để nhận dạng tin nhắn trò chuyện gửi tới chatbot trong 2 trường hợp(lời chào hay hỏi mua hàng) để từ đó đưa ra các cách hành xử khác nhau trên chatbot. Vì vậy, thuật toán KNN trong trường hợp này được sử dụng theo dạng phân loại.
Trong thuật toán phân loại của KNN, nhãn của một điểm dữ liệu mới có thể được suy diễn từ k điểm dữ liệu gần nhất trong tập huấn luyện. Label của một điểm dữ liệu có thể được quyết định bằng cách bình chọn theo số phiếu giữa các điểm gần nhất, hoặc có thể suy ra bằng cách đánh trọng số khác nhau cho một trong các điểm gần nhất rồi suy ra label.
Tóm lại, giải thuật KNN được thực hiện theo các bước như sau:
¥! Bước 1: Mô hình hoá tập huấn luyện và dữ liệu cần dự đoán nhãn thành các vector trong không gian.
¥! Bước 2: Tính khoảng cách từ vector dữ liệu cần dự đoán nhãn với các vector trong tập huấn luyện.
¥! Bước 3: Chọn ra k điểm lân cận với điểm dữ liệu cần dự đoán nhãn. Ta sẽ xem xét nhãn của các điểm lân cận này, nhãn nào xuất hiện nhiều nhất thì dữ liệu cần gắn nhãn thuộc về nhãn đó.