手机版

聚类分析:kmeans函数如何将无标签数据自动分为K个类别

时间:2026-09-07 284
KMeans聚类通过初始化K个随机质心、将样本分配至最近质心、重算各簇质心、迭代优化直至收敛,最终输出簇标签与质心坐标,实现对未标注数值型数据的自动分组。

如果您拥有大量未标注的数值型数据,希望依据内在相似性自动划分为K个结构化组别,则KMeans聚类正是实现该目标的核心工具。以下是kmeans函数执行自动分类的具体机制与操作路径:

一、初始化K个随机质心

算法启动时需预先指定类别数量K,随后从输入数据集中**随机选取K个样本点作为初始质心**,这些点构成后续迭代的基准锚点。质心代表各簇的中心位置,其维度与数据特征维度一致。

1、确定预设簇数K值,例如K=3;

2、在全部n个样本中不放回地随机抽取K个点;

3、将这K个点的坐标分别赋值为μ₁⁽⁰⁾, μ₂⁽⁰⁾, …, μₖ⁽⁰⁾,作为第0轮迭代的初始中心。

二、分配每个样本至最近质心所属簇

该步骤基于欧氏距离度量样本与各质心的空间接近程度,确保每个数据点被归入**几何距离最小的簇**,从而形成初步划分。此过程使簇内紧凑性开始显现。

1、对每个样本xᵢ,依次计算其到K个当前质心μⱼ的欧氏距离||xᵢ − μⱼ||²;

2、选取使该距离最小的j值,令cᵢ = j;

3、将xᵢ标记为属于第j簇,完成全部n个样本的一次分配。

三、重算各簇质心位置

在样本完成簇归属后,算法通过求均值方式更新每个簇的中心位置,使新质心更准确反映该簇内所有成员的分布重心,提升划分合理性。

1、对每个簇j,收集所有满足cᵢ = j的样本集合Sⱼ;

2、若Sⱼ非空,计算其所有样本坐标的算术平均值;

3、将该均值向量设为新一轮质心μⱼ⁽ᵗ⁺¹⁾;

4、若某簇为空,则重新从数据集中随机选一个未被选为质心的样本替代。

四、重复分配与更新直至收敛

算法持续交替执行“分配→更新”两个阶段,目标是最小化所有样本到其所属簇质心的距离平方和(SSE),当质心位移低于阈值或达到最大迭代次数时终止。

1、设定收敛容差ε(如1e-4)与最大迭代轮数(如300);

2、比较本轮与上轮所有质心的坐标变化量maxⱼ||μⱼ⁽ᵗ⁾ − μⱼ⁽ᵗ⁻¹⁾||;

3、若该最大变化量小于ε,或当前轮数已达上限,则停止迭代;

4、否则返回第二步,用新质心重新分配全部样本。

五、输出最终簇标签与质心坐标

收敛完成后,kmeans函数返回每个样本的整数型簇标签数组以及K个最终质心的坐标矩阵,实现从原始无标签数据到K个语义可解释分组的完整映射。

1、调用labels_属性获取长度为n的整数数组,其中第i个元素表示xᵢ所属簇编号;

2、调用cluster_centers_属性获取K×d维矩阵,每行对应一个簇的d维质心坐标;

3、标签数组中数值范围严格为0至K−1,且不保证按业务含义排序

4、质心坐标是浮点型向量,直接反映各簇在原始特征空间中的几何中心

女子学校安检员安卓最新版
6.0
模拟经营 20 MB
扫一扫手机安装更便捷