KNN là một thuật toán cực kỳ đơn giản nhưng rất thông minh trong thế giới máy học. Nó giống như bạn đang hỏi ý kiến của những người hàng xóm thân thiện để đưa ra quyết định.
Câu chuyện vui: KNN trong đời thực
Giả sử bạn mới chuyển đến một khu phố và muốn biết nhà hàng pizza nào ngon nhất. Nhưng bạn chưa biết chọn quán nào.
Bạn đi hỏi 3 người hàng xóm gần nhất (đây chính là “K=3” trong KNN đó). Mỗi người nói họ thích quán A, quán B, quán A. Vì số đông thích quán A, bạn quyết định chọn quán A để thưởng thức.
KNN cũng y hệt vậy: khi muốn phân loại một điểm dữ liệu mới, KNN sẽ nhìn vào “K” điểm dữ liệu gần nó nhất, xem đa số thuộc nhóm nào, rồi “bê” nhóm đó cho điểm mới.
Cách hoạt động của KNN
- Bạn có một “bản đồ” (dữ liệu) với nhiều điểm đã biết nhóm (label) của chúng.
- Bạn muốn biết điểm mới này thuộc nhóm nào.
- Bạn đo khoảng cách từ điểm mới đến tất cả các điểm đã biết trên bản đồ.
- Chọn ra K điểm gần nhất.
- Xem nhóm nào chiếm đa số trong K điểm đó, điểm mới sẽ thuộc nhóm đó.
Ví dụ dễ hiểu
- K = 5 (hỏi 5 người hàng xóm)
- 5 người đó có 3 người thích nhóm “Táo” (Apple), 2 người thích nhóm “Cam” (Orange)
- Điểm mới sẽ được xếp vào nhóm “Táo”.
Một số điểm vui:
- Nếu bạn hỏi ít người quá (K=1), bạn dễ bị “bịp” bởi một người hàng xóm quá lắm khen hoặc chê thôi.
- Nếu bạn hỏi quá nhiều người (K rất lớn), bạn có thể nhận được ý kiến quá lộn xộn, khó quyết định.
- KNN không “học” theo kiểu phức tạp, nó chỉ đơn giản là “hỏi ý kiến hàng xóm gần nhất”.
Tóm tắt v
KNN là thuật toán “hỏi thăm hàng xóm” để quyết định điểm mới thuộc nhóm nào.
Bạn như người mới, “hỏi nhanh 3, 5, hay 7 ông bà hàng xóm, nghe họ bảo gì thì nghe theo.” Đơn giản mà hiệu quả! Đó gọi là “ba ông thợ da bằng một Gia Cát Lượng”