探索K均值聚类在无监督学习中的应用。了解该算法如何对数据进行分区,增强人工智能应用,并Ultralytics 等模型提供决策依据。
K均值聚类是无监督学习领域中基础且广泛应用的算法,旨在发掘无标签数据中的隐含结构。其核心目标是将数据集划分为互不重叠的子集(即聚类),使同一聚类内的数据点尽可能相似,而不同聚类间的数据点则呈现显著差异。 作为数据挖掘与探索性分析的基石,K均值算法使数据科学家能够自动将复杂信息组织为可管理的类别,无需预先定义标签或人工监督。
K均值算法采用迭代方式运行,依赖距离度量来确定训练数据的最优分组方案。该算法通过将数据项组织成K个簇来运作,每个数据项归属于距离其均值(或质心)最近的簇。此过程可使各簇内部的方差最小化。其工作流程通常遵循以下步骤:
确定正确的聚类数(K)是使用该算法的关键环节。实践者常采用肘部法等技术,或分析轮廓分数,以评估所得聚类的分离程度。
K均值聚类法具有高度的灵活性,在简化数据和数据预处理方面被广泛应用于各个行业。
虽然深度学习框架(Ultralytics )负责处理复杂的训练流程,但K均值聚类常用于分析数据集统计特征。下面的Python 演示了如何使用流行的Scikit-learn库对二维坐标(模拟对象质心)进行聚类分析。
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均值算法与其他名称或功能相似的算法至关重要,以确保为项目选择正确的工具。