Khám phá cách K-Nearest Neighbors (KNN) đơn giản hóa việc học máy bằng cách tiếp cận trực quan, phi tham số cho các tác vụ phân loại và hồi quy.
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, khiến nó trở thành điểm khởi đầu tuyệt vời để hiểu về học tập dựa trên trường hợp . 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.
Ý 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 mới được gán cho lớp phổ biến nhất trong số K láng giềng của nó (bỏ phiếu đa số). Đối với hồi quy, dự đoán thường là giá trị trung bình của K láng giềng. Lựa chọn số liệu khoảng cách (ví dụ: Manhattan, Minkowski) và giá trị của '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. Việc triển khai hiệu quả thường dựa vào các cấu trúc dữ liệu như cây KD hoặc cây Ball để tăng tốc tìm kiếm láng giềng, đặc biệt là với các tập dữ liệu lớn hơn.
Việc lựa chọn 'K' tối ưu là rất quan trọng. Giá trị 'K' nhỏ (ví dụ: K = 1) làm cho mô hình rất nhạy cảm với nhiễu và các giá trị ngoại lai trong dữ liệu, có khả năng dẫn đến quá khớp , trong đó mô hình hoạt động tốt trên dữ liệu đào tạo nhưng kém trên dữ liệu chưa biết. Ngược lại, giá trị 'K' lớn có thể làm mịn quá mức ranh giới quyết định, làm cho mô hình ít nhạy cảm hơn với các mẫu cục bộ và có khả năng dẫn đến quá khớp và chi phí tính toán cao trong quá trình dự đoán. Các kỹ thuật như xác thực chéo (xem Hướng dẫn xác thực chéo Scikit-learn ) 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. Thư viện Scikit-learn cung cấp các công cụ để triển khai KNN và thực hiện tìm kiếm siêu tham số và bạn có thể tìm thấy các mẹo chung trong Hướng dẫn điều chỉnh siêu tham số Ultralytics .
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:
KNN mang lại nhiều lợi ích nhưng cũng có những hạn chế:
Thuận lợi:
Nhược điểm:
Điều quan trọng là phải phân biệt KNN với các thuật toán khác:
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à hiệu suất 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 .