探索用于无监督学习的K-均值聚类。了解该算法如何划分数据、增强AI应用并为Ultralytics YOLO26等模型提供信息。
K-Means 聚类是无监督学习领域中一种基础且广泛使用的算法,旨在发现无标签数据中的隐藏结构。其主要目标是将数据集划分为不同的子组,即聚类,使得同一组内的数据点尽可能相似,而不同组之间的数据点则截然不同。作为数据挖掘和探索性分析的基石,K-Means 使数据科学家能够自动将复杂信息组织成可管理的类别,无需预定义标签或人工监督。
K-Means 的操作是迭代的,并依赖于距离度量来确定训练数据的最佳分组。该算法通过将项目组织成K个簇来运行,其中每个项目都属于具有最近均值或质心的簇。这个过程最小化了每个组内的方差。其工作流程通常遵循以下步骤:
确定正确的聚类数(K)是使用该算法的关键环节。实践者常采用肘部法等技术,或分析轮廓分数,以评估所得聚类的分离程度。
K均值聚类法具有高度的灵活性,在简化数据和数据预处理方面被广泛应用于各个行业。
尽管像 Ultralytics Platform 这样的深度学习框架处理复杂的训练管道,但 K-Means 经常用于分析数据集统计信息。以下 python 代码片段演示了如何使用流行的 Scikit-learn 库对 2D 坐标(模拟对象质心)进行聚类。
import numpy as np
from sklearn.cluster import KMeans
# Simulated coordinates of detected objects (e.g., from YOLO26 inference)
points = np.array([[10, 10], [12, 11], [100, 100], [102, 101], [10, 12], [101, 102]])
# Initialize K-Means to find 2 distinct groups (clusters)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(points)
# Output the cluster labels (0 or 1) for each point
print(f"Cluster Labels: {kmeans.labels_}")
# Output: [1 1 0 0 1 0] -> Points near (10,10) are Cluster 1, near (100,100) are Cluster 0
区分K均值算法与其他名称或功能相似的算法至关重要,以确保为项目选择正确的工具。

开启您的机器学习未来之旅