Phân Cụm K-Means
Phân cụm K-Means là một thuật toán học máy không giám sát phổ biến dùng để phân chia tập dữ liệu thành một số cụm xác định trước, riêng biệt, không chồng lấn bằ...
K-Láng Giềng Gần Nhất (KNN) là một thuật toán đơn giản, không tham số cho phân loại và hồi quy, dự đoán kết quả dựa trên sự gần gũi của các điểm dữ liệu.
Thuật toán k-láng giềng gần nhất (KNN) là một thuật toán học máy có giám sát, không tham số, được sử dụng cho các bài toán phân loại và hồi quy trong học máy. Thuật toán này dựa trên khái niệm về sự gần gũi, giả định rằng các điểm dữ liệu tương tự sẽ nằm gần nhau. KNN là một thuật toán học lười (lazy learning), nghĩa là không cần giai đoạn huấn luyện mà dự đoán bằng cách lưu trữ toàn bộ tập dữ liệu huấn luyện và sử dụng nó để xác định lớp hoặc giá trị của các điểm dữ liệu mới. Thuật toán dự đoán kết quả cho một điểm kiểm tra bằng cách xác định ‘k’ điểm dữ liệu huấn luyện gần nhất với điểm kiểm tra và suy ra đầu ra dựa trên các láng giềng này. Phương pháp này rất trực quan và mô phỏng chiến lược nhận thức của con người khi so sánh dữ liệu mới với các ví dụ đã biết.
KNN vận hành bằng cách xác định ‘k’ láng giềng gần nhất với một điểm truy vấn và dùng các láng giềng này để đưa ra dự đoán.
Nguyên lý về sự gần gũi và tương đồng, vốn là cốt lõi của nhận thức con người, cũng là trung tâm vận hành của KNN, bởi các điểm dữ liệu gần nhau trong không gian thuộc tính được cho là tương tự và do đó có khả năng mang lại kết quả giống nhau.
Để xác định các láng giềng gần nhất, KNN sử dụng nhiều phép đo khoảng cách khác nhau, rất quan trọng đối với hiệu suất của nó:
Tham số ‘k’ trong KNN biểu thị số láng giềng cần xét. Việc chọn ‘k’ phù hợp là rất quan trọng:
KNN được sử dụng rộng rãi nhờ sự đơn giản và hiệu quả:
KNN có thể được triển khai bằng các thư viện như scikit-learn trong Python. Dưới đây là ví dụ cơ bản về sử dụng KNN cho phân loại:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
# Tải dữ liệu
iris = load_iris()
X, y = iris.data, iris.target
# Chia dữ liệu thành tập huấn luyện và kiểm tra
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Khởi tạo bộ phân loại KNN với k=3
knn = KNeighborsClassifier(n_neighbors=3)
# Huấn luyện mô hình
knn.fit(X_train, y_train)
# Dự đoán
y_pred = knn.predict(X_test)
# Đánh giá độ chính xác
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")
K-Láng Giềng Gần Nhất (KNN) là một thuật toán cơ bản được sử dụng trong nhiều lĩnh vực như truy xuất thông tin đa phương tiện, khai phá dữ liệu và học máy, đặc biệt trong bối cảnh các tập dữ liệu lớn.
“Approximate k-NN Graph Construction: a Generic Online Approach” của Wan-Lei Zhao và cộng sự:
Trình bày phương pháp hiệu quả cho cả tìm kiếm k-láng giềng gần đúng và xây dựng đồ thị. Bài báo giới thiệu giải pháp động, khả thi cho nhiều quy mô dữ liệu và chiều không gian, hỗ trợ cập nhật trực tuyến mà nhiều phương pháp hiện có không thực hiện được. Đọc thêm.
“Parallel Nearest Neighbors in Low Dimensions with Batch Updates” của Magdalen Dobson và Guy Blelloch:
Giới thiệu các thuật toán song song kết hợp kd-tree và Morton ordering thành cấu trúc zd-tree, tối ưu cho dữ liệu có số chiều thấp. Tác giả chứng minh phương pháp nhanh hơn các thuật toán hiện có, đạt tốc độ vượt trội với xử lý song song. Zd-tree hỗ trợ cập nhật động theo lô song song, lần đầu tiên xuất hiện trong cấu trúc dữ liệu k-láng giềng gần nhất. Đọc thêm.
“Twin Neural Network Improved k-Nearest Neighbor Regression” của Sebastian J. Wetzel:
Khai thác phương pháp mới cho hồi quy k-láng giềng gần nhất sử dụng mạng nơ-ron đôi. Phương pháp này tập trung dự đoán sự chênh lệch giữa các mục tiêu hồi quy, mang lại hiệu suất vượt trội so với các mạng nơ-ron truyền thống và kỹ thuật hồi quy k-láng giềng gần nhất trên các tập dữ liệu nhỏ và trung bình. Đọc thêm.
K-Láng Giềng Gần Nhất (KNN) là một thuật toán học máy có giám sát, không tham số được sử dụng cho phân loại và hồi quy. Thuật toán dự đoán kết quả bằng cách xác định 'k' điểm dữ liệu gần nhất với một truy vấn và suy ra kết quả dựa trên các láng giềng này.
KNN dễ hiểu và triển khai, không cần giai đoạn huấn luyện rõ ràng và có thể sử dụng cho cả bài toán phân loại lẫn hồi quy.
KNN có thể tốn nhiều tài nguyên tính toán khi xử lý tập dữ liệu lớn, nhạy cảm với ngoại lệ và hiệu suất có thể giảm trong dữ liệu có nhiều chiều do lời nguyền chiều không gian.
Giá trị 'k' tối ưu thường được xác định thực nghiệm bằng phương pháp kiểm định chéo. 'k' nhỏ có thể gây quá khớp, trong khi 'k' lớn có thể dẫn tới thiếu khớp; thường chọn giá trị lẻ để tránh trường hợp hòa phiếu.
Các phép đo khoảng cách phổ biến bao gồm khoảng cách Euclid, Manhattan, Minkowski và Hamming, được chọn dựa trên kiểu dữ liệu và yêu cầu của bài toán.
Khám phá cách các công cụ AI và chatbot của FlowHunt có thể nâng cao phân tích dữ liệu và tự động hóa quy trình làm việc của bạn. Xây dựng, kiểm thử và triển khai giải pháp AI dễ dàng.
Phân cụm K-Means là một thuật toán học máy không giám sát phổ biến dùng để phân chia tập dữ liệu thành một số cụm xác định trước, riêng biệt, không chồng lấn bằ...
Độ chính xác Top-k là một chỉ số đánh giá trong học máy, xác định xem lớp thực sự có nằm trong số k lớp được dự đoán hàng đầu hay không, cung cấp một thước đo t...
Hồi Quy Rừng Ngẫu Nhiên là một thuật toán học máy mạnh mẽ được sử dụng cho phân tích dự đoán. Nó xây dựng nhiều cây quyết định và tính trung bình kết quả của ch...