K-Nearest Neighbors algorithm (KNN) được sử dụng rất phổ biến trong lĩnh vực Data Mining. KNN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần nhất giữa đối tượng cần xếp lớp với tất cả các đối tượng trong Training Data.
Một đối tượng được phân lớp dựa vào k láng giềng của nĩ. K là số nguyên dương được xác định trước khi thực hiện thuật tốn. Người ta thường dùng khoảng cách Euclidean, Cosine để tính khoảng cách giữa các đối tượng.
Thuật tốn KNN dùng trong phân lớp được mơ tả như sau: Xác định giá trị tham số K (số láng giềng gần nhất)
Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng trong training data (thường sử dụng khoảng cách Euclidean, Cosine…)
Sắp xếp khoảng cách theo thứ tự tăng dần và xác định k láng giềng gần nhất với đối tượng cần phần lớp
Lấy tất cả các lớp của k láng giềng gần nhất đã xác định
Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối tượng.
Trong khuơng khổ luận văn này, tác giả lấy k = 1/3 số mẫu cĩ độ đo tương đồng lớn nhất với dữ liệu test làm dữ liệu so sánh và gán nhãn cho dữ liệu test.
Hình 11: Một ví dụ về phân lớp KNN
Một ví dụ đơn giản về phân lớp K-NN được minh họa trong hình 6. Trong đĩ, các nút trịn màu đỏ thể hiện lớp A, nút trịn màu xanh thể hiện lớp B, nút trịn màu trắng cĩ dấu hỏi là dữ liệu chưa được gán nhãn. Với tham số k=9, thuật tốn KNN sẽ tìm 9 nút cĩ khoảng cách gần nút màu trắng nhất. Nút màu trắng cĩ khoảng cách gần nhất tới 7 nút màu đỏ và 2 nút màu xanh, dễ dàng nhận thấy trong hình, nút màu trắng sẽ cĩ thuộc lớp A (lớp chứa nút màu đỏ).
Để chọn được tham số k tốt nhất cho mơ hình phân lớp, thuật tốn cần được thực nghiệm trên nhiều giá trị k khác nhau, nhưng với k càng lớn thì độ chính xác càng cao.