Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Phân Cụm K-Means

Tìm hiểu về phân cụm K-Means, một thuật toán học không giám sát quan trọng để nhóm dữ liệu thành các cụm. Khám phá quy trình, ứng dụng và so sánh của nó!

Phân cụm K-Means là một thuật toán được sử dụng rộng rãi trong lĩnh vực học không giám sát, được thiết kế để phân chia một tập dữ liệu thành các nhóm con riêng biệt, không chồng chéo. Trong bối cảnh rộng hơn của học máy (ML) , phương pháp này rất cần thiết để khám phá các mẫu và cấu trúc ẩn trong dữ liệu chưa được gắn nhãn. Thuật toán hoạt động bằng cách tổ chức các điểm dữ liệu thành $K$ cụm, trong đó mỗi điểm thuộc về cụm có giá trị trung bình gần nhất, đóng vai trò là nguyên mẫu của nhóm. Phương pháp này giúp giảm thiểu phương sai trong mỗi cụm, đảm bảo các điểm dữ liệu trong cùng một nhóm càng giống nhau càng tốt trong khi vẫn giữ được sự khác biệt giữa các nhóm.

Thuật toán hoạt động như thế nào

Quá trình K-Means là một quá trình lặp và bắt đầu bằng việc chọn $K$ tâm ban đầu, đóng vai trò là điểm trung tâm của các cụm. Các tâm này có thể được chọn ngẫu nhiên hoặc thông qua các kỹ thuật khởi tạo thông minh hơn như khởi tạo k-means++ để cải thiện tốc độ hội tụ. Sau đó, thuật toán tiến hành qua hai bước chính cho đến khi kết quả ổn định:

  1. Phân công : Mỗi điểm dữ liệu trong dữ liệu huấn luyện được gán cho tâm gần nhất dựa trên một phép đo khoảng cách, thường là khoảng cách Euclid . Bước này thực sự nhóm dữ liệu thành các cụm $K$.
  2. Cập nhật : Trọng tâm mới cho mỗi cụm được tính bằng cách tính giá trị trung bình của tất cả các điểm dữ liệu được gán cho cụm cụ thể đó.

Chu kỳ này lặp lại cho đến khi các trọng tâm không còn dịch chuyển đáng kể nữa, cho thấy thuật toán đã hội tụ. Việc xác định số lượng cụm tối ưu là một phần quan trọng của quy trình, thường được thực hiện bằng các kỹ thuật như phương pháp Elbow hoặc bằng cách phân tích điểm Silhouette để đo khoảng cách phân tách giữa các cụm kết quả.

Ứng dụng thực tế trong AI

K-Means Clustering rất linh hoạt và hữu ích trong nhiều ngành công nghiệp khác nhau cho các nhiệm vụ khai thác và phân tích dữ liệu .

  • Phân khúc khách hàng : Các doanh nghiệp sử dụng công nghệ phân cụm để nhóm khách hàng dựa trên hành vi mua sắm, nhân khẩu học hoặc lịch sử duyệt web. Bằng cách xác định các nhóm riêng biệt, các công ty có thể điều chỉnh chiến lược tiếp thị, tương tự như cách AI trong bán lẻ cải thiện việc nhắm mục tiêu khách hàng và quản lý hàng tồn kho.
  • Nén ảnh : Trong lĩnh vực thị giác máy tính (CV) , K-Means được sử dụng để lượng tử hóa màu sắc. Kỹ thuật này giảm số lượng màu riêng biệt trong ảnh bằng cách nhóm các giá trị pixel, thực hiện giảm chiều hiệu quả trong khi vẫn duy trì tính toàn vẹn trực quan của ảnh.
  • Phát hiện bất thường : Bằng cách học cấu trúc của các cụm dữ liệu thông thường, hệ thống có thể xác định các điểm ngoại lệ nằm xa bất kỳ trọng tâm nào. Điều này rất có giá trị cho các ứng dụng bảo mật và phát hiện bất thường trong lưu lượng mạng.

K-Means trong Lịch sử Phát hiện Đối tượng

Trong khi các bộ phát hiện vật thể hiện đại như Ultralytics YOLO11 thường sử dụng các kỹ thuật hồi quy tiên tiến hoặc đầu không neo, K-Means đóng vai trò then chốt trong sự phát triển của các mô hình phát hiện. Các phiên bản trước đó, chẳng hạn như YOLOv2 đến YOLOv5 , đã sử dụng phân cụm K-Means trên các chiều hộp giới hạn của tập dữ liệu COCO để xác định các hộp neo tối ưu. Các neo được tính toán trước này cung cấp cho mô hình các ước lượng trước tốt hơn để dự đoán hình dạng vật thể, cải thiện đáng kể độ ổn định và khả năng thu hồi trong quá trình huấn luyện.

K-Means so với K-Nearest Neighbors (KNN)

Người ta thường nhầm lẫn K-Means với K-Nearest Neighbors (KNN) , nhưng về cơ bản chúng phục vụ những mục đích khác nhau.

  • K-Means là một thuật toán không giám sát được sử dụng để phân cụm . Nó không yêu cầu dữ liệu được gắn nhãn và tập trung vào việc tìm kiếm cấu trúc vốn có trong tập dữ liệu.
  • KNN là một thuật toán học có giám sát được sử dụng để phân loại và hồi quy hình ảnh . Nó dựa vào đầu vào được gắn nhãn để classify các điểm dữ liệu mới dựa trên lớp đa số của những người hàng xóm gần nhất của họ.

Một khái niệm liên quan khác là DBSCAN , phân cụm dựa trên mật độ thay vì khoảng cách từ điểm trung tâm. Không giống như K-Means, DBSCAN không yêu cầu số lượng cụm phải được chỉ định trước và xử lý các giá trị ngoại lai tốt hơn.

Ví dụ mã: Lượng tử hóa màu

Sau đây là Python Ví dụ minh họa cách sử dụng K-Means để phân cụm màu pixel, một bước tiền xử lý dữ liệu phổ biến trong các tác vụ thị giác.

import numpy as np
from sklearn.cluster import KMeans

# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)

# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)

# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay