K-Means Clustering
探索用于无监督学习的 K-Means 聚类。了解该算法如何对数据进行分区、增强 AI 应用,并为 Ultralytics YOLO26 等模型提供支持。
K-Means 聚类是一种在无监督学习领域基础且应用广泛的算法,旨在挖掘未标记数据中隐藏的结构。其主要目标是将数据集划分为不同的子组(即聚类),使得同一组内的数据点尽可能相似,而不同组之间的数据点则差异明显。作为数据挖掘和探索性分析的基石,K-Means 使数据科学家能够在无需预定义标签或人工监督的情况下,自动将复杂信息组织成可管理的类别。
Link to this section算法工作原理#
K-Means 的运作是迭代式的,依赖距离度量来确定训练数据的最佳分组。该算法通过将项目组织成 K 个聚类来运行,其中每个项目都属于距离最近的平均值(即质心)所属的聚类。此过程可最小化每个组内的方差。其工作流程通常遵循以下步骤:
-
初始化: 算法选择 K 个初始点作为质心。这些点可以随机选择,也可以通过诸如 k-means++ 等优化方法选择,以加速收敛。
-
分配: 数据集中的每个数据点根据特定的距离度量(最常见的是欧几里得距离)被分配到最近的质心。
-
更新: 通过取分配到该聚类的所有数据点的平均值(均值)来重新计算质心。
-
迭代: 重复第 2 步和第 3 步,直到质心不再发生显著移动或达到最大迭代次数。
确定正确的聚类数量 (K) 是使用该算法的关键环节。从业者通常会使用肘部法则等技术,或分析轮廓系数来评估所得聚类的分离效果。
Link to this section人工智能的实际应用#
K-Means 聚类具有高度通用性,广泛应用于各行各业,用于简化和数据预处理。
- 图像压缩与颜色量化: 在计算机视觉 (CV) 中,K-Means 通过聚类像素颜色来帮助减小图像文件大小。通过将成千上万种颜色归类为一组较小的主要颜色,该算法在保持图像视觉结构的同时有效地执行了降维。这种技术通常用于在训练高级目标检测模型之前对输入数据进行标准化。
- 客户细分: 企业利用聚类根据购买历史、人口统计学特征或网站行为对客户进行分组。这有助于实施有针对性的营销策略,是 AI 零售 解决方案的关键组成部分。通过识别高价值购物者或流失风险用户,公司可以有效地定制其信息。
- 异常检测: 通过学习“正常”数据聚类的结构,系统可以识别远离任何质心的离群值。这对于金融领域的欺诈检测和网络安全中的异常检测非常有价值,有助于标记偏离标准模式的可疑活动。
- 锚框生成: 从历史上看,诸如旧版 YOLO 等目标检测器利用 K-Means 从训练数据集中计算最佳锚框。虽然像 YOLO26 这样的现代模型采用了先进的无锚框(anchor-free)方法,但理解 K-Means 对于检测架构的演进依然具有相关意义。
Link to this section实现示例#
虽然诸如 Ultralytics Platform 等深度学习框架能够处理复杂训练流程,但 K-Means 常被用于分析数据集统计信息。以下 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 0Link to this section与相关算法的比较#
为了确保为项目选择正确的工具,区分 K-Means 与其他名称或功能相似的算法非常重要。
- K-Means 与 K-最近邻 (KNN): 由于名称中都带有“K”,两者常被混淆。K-Means 是一种用于对未标记数据进行聚类的无监督算法。相比之下,K-最近邻 (KNN) 是一种监督学习算法,用于图像分类和回归,它依赖标记数据并根据邻居的多数类别进行预测。
- K-Means 与 DBSCAN: 虽然两者都对数据进行聚类,但 K-Means 假设聚类是球形的,且需要预先定义聚类数量。DBSCAN 根据密度对数据进行分组,可以发现任意形状的聚类,并能更好地处理噪声。这使得 DBSCAN 在处理数据集中发现的具有不规则结构的复杂空间数据(且聚类数量未知)时表现更优。






