K-Nearest Neighbors (KNN) là một thuật toán cơ bản trong học máy (ML) được sử dụng cho cả nhiệm vụ phân loại và hồi quy. Nó nổi bật vì tính đơn giản và cách tiếp cận trực quan. KNN được phân loại là phương pháp phi tham số vì nó không đưa ra giả định về phân phối dữ liệu cơ bản. Nó cũng được gọi là thuật toán "học lười biếng" vì nó không xây dựng mô hình chung trong giai đoạn dữ liệu đào tạo ; thay vào đó, nó lưu trữ toàn bộ tập dữ liệu và chỉ thực hiện các phép tính khi cần dự đoán.
KNN hoạt động như thế nào
Ý tưởng cốt lõi đằng sau KNN dựa trên sự tương đồng, thường được xác định bằng cách sử dụng các số liệu khoảng cách như khoảng cách Euclidean. Khi dự đoán một điểm dữ liệu mới, chưa thấy, thuật toán sẽ xác định 'K' điểm dữ liệu gần nhất (hàng xóm) với nó từ tập dữ liệu đào tạo được lưu trữ. Giá trị 'K' là một số nguyên do người dùng xác định và biểu thị số lượng hàng xóm được xem xét.
- Đối với Phân loại: Điểm dữ liệu mới được gán cho lớp phổ biến nhất trong số K hàng xóm gần nhất của nó. Nếu K = 3 và hai hàng xóm thuộc Lớp A và một hàng xóm thuộc Lớp B, điểm mới được phân loại là Lớp A.
- Đối với hồi quy: Dự đoán cho điểm dữ liệu mới thường là giá trị trung bình (hoặc đôi khi là trung vị) của các giá trị K lân cận gần nhất của nó.
Việc lựa chọn số liệu khoảng cách và giá trị 'K' là các siêu tham số quan trọng ảnh hưởng đáng kể đến hiệu suất của mô hình.
Chọn giá trị của 'K'
Việc lựa chọn 'K' tối ưu là rất quan trọng. Giá trị 'K' nhỏ khiến mô hình nhạy cảm với nhiễu và các giá trị ngoại lai, có khả năng dẫn đến quá khớp . Ngược lại, giá trị 'K' lớn có thể làm mịn quá mức ranh giới quyết định, có khả năng dẫn đến quá khớp và chi phí tính toán cao. Các kỹ thuật như xác thực chéo thường được sử dụng để tìm 'K' phù hợp cân bằng sự đánh đổi giữa độ lệch và phương sai .
Ứng dụng của KNN
Tính đơn giản của KNN phù hợp với nhiều ứng dụng khác nhau, đặc biệt là khi tính dễ hiểu được coi trọng:
- Hệ thống đề xuất: KNN có thể gợi ý các mục (như phim hoặc sản phẩm) cho người dùng dựa trên sở thích của những người hàng xóm 'gần nhất' của họ (những người dùng có sở thích tương tự). Các dịch vụ như Netflix đã khám phá các phương pháp dựa trên trường hợp tương tự.
- Nhận dạng hình ảnh: Trong các tác vụ phân loại hình ảnh cơ bản, KNN có thể phân loại hình ảnh dựa trên các lớp hình ảnh giống nhau nhất trong tập huấn luyện (ví dụ: xác định chữ số viết tay dựa trên độ tương đồng của pixel). Mặc dù hiệu quả đối với các tập dữ liệu đơn giản hơn như MNIST , các tác vụ phức tạp hơn thường yêu cầu các mô hình tinh vi.
- Phát hiện bất thường: Bằng cách xác định các điểm dữ liệu cách xa bất kỳ cụm lân cận nào, KNN có thể được sử dụng để phát hiện các giá trị ngoại lệ hoặc bất thường, hữu ích trong các lĩnh vực như phát hiện gian lận hoặc xác định các mặt hàng bị lỗi trong sản xuất . Khám phá thêm về các phương pháp phát hiện bất thường .
- Phân tích biểu hiện gen: Trong tin sinh học, KNN giúp phân loại mẫu dựa trên các kiểu biểu hiện gen, nhóm các cấu hình di truyền tương tự lại với nhau. Tìm hiểu thêm về AI trong các ứng dụng chăm sóc sức khỏe .
Ưu điểm và nhược điểm của KNN
KNN mang lại nhiều lợi ích nhưng cũng có những hạn chế:
Thuận lợi:
- Đơn giản và trực quan: Dễ hiểu và dễ thực hiện.
- Không có giai đoạn đào tạo: Học ngay lập tức bằng cách lưu trữ tập dữ liệu, giúp nó có thể thích ứng với dữ liệu mới.
- Tính linh hoạt: Xử lý phân loại đa lớp một cách tự nhiên và có thể được điều chỉnh để hồi quy.
Nhược điểm:
- Chi phí tính toán: Việc dự đoán có thể chậm và tốn kém về mặt tính toán, đặc biệt là với các tập dữ liệu lớn vì nó đòi hỏi phải tính toán khoảng cách đến tất cả các điểm đào tạo.
- Độ nhạy với các tính năng không liên quan: Hiệu suất giảm đáng kể với dữ liệu có nhiều chiều (lời nguyền của tính đa chiều) hoặc khi có các tính năng không liên quan. Có thể cần các kỹ thuật như giảm tính đa chiều .
- Nhu cầu về khả năng mở rộng tính năng: Nhạy cảm với quy mô dữ liệu; các tính năng có phạm vi lớn hơn có thể chi phối các phép tính khoảng cách, đòi hỏi phải chuẩn hóa .
- Xác định 'K' tối ưu: Việc tìm giá trị tốt nhất cho 'K' đòi hỏi phải điều chỉnh siêu tham số cẩn thận.
KNN so với các khái niệm liên quan
Điều quan trọng là phải phân biệt KNN với các thuật toán khác:
- Phân cụm K-Means : Mặc dù cả hai đều sử dụng các phép đo 'K' và khoảng cách, K-Means là một thuật toán học không giám sát để phân cụm dữ liệu thành các nhóm dựa trên sự tương đồng. KNN là một thuật toán học có giám sát để phân loại hoặc hồi quy dựa trên các láng giềng được gắn nhãn.
- Support Vector Machine (SVM) : SVM là một thuật toán có giám sát tìm ra một siêu phẳng tối ưu để tách các lớp. Không giống như cách tiếp cận dựa trên thể hiện của KNN, SVM xây dựng một mô hình rõ ràng, thường hoạt động tốt hơn với dữ liệu có nhiều chiều.
- Cây quyết định : Cây quyết định xây dựng mô hình dựa trên các phân tách tính năng, cung cấp các quy tắc rõ ràng để phân loại hoặc hồi quy. KNN dựa vào sự tương đồng cục bộ hơn là các quy tắc rõ ràng.
Trong khi KNN có giá trị đối với một số tác vụ nhất định và hiểu các khái niệm ML cơ bản, các vấn đề phức tạp như phát hiện đối tượng theo thời gian thực thường được hưởng lợi từ các mô hình tiên tiến hơn như Ultralytics YOLO , cung cấp tốc độ và độ chính xác vượt trội, đặc biệt là trên các tập dữ liệu thị giác máy tính quy mô lớn. Bạn có thể đào tạo và triển khai các mô hình như vậy bằng các nền tảng như Ultralytics HUB .