聚类

最近更新时间:2026-06-08 18:32:30

我的收藏

算法介绍

K-means(K-均值) 是一种经典的无监督学习算法,通过迭代过程实现数据的自动化聚类分析。该算法旨在将数据集划分为 K 个互不相交的簇。其核心逻辑是通过计算样本间的相似度(通常采用欧几里得距离),将相似的对象归入到同一个类群中。
算法执行流程如下:
1. 初始化:根据预设的 K 值,在特征空间中随机选取 K 个点作为初始聚类中心。
2. 分配阶段:计算每个样本到各个聚类中心的距离,并将其指派给距离最近的中心,形成初步聚类。
3. 迭代更新:计算每个簇内所有对象的平均值,并以此更新聚类中心的位置。
4. 收敛判定:重复上述过程,直到聚类中心不再发生显著变化或达到预设的迭代次数。

算法参数介绍

入参
类型
默认值
说明
n_clusters
INT
无默认值,必填项
定义目标簇数。须满足 2 ≤ n_clusters ≤ n_samples,其中 n_samples 为训练样本数。未传或超出范围时报错。
n_init
STRINGINT
'auto'
随机初始化次数:重复运行 K-means 以避开局部最优,取惯性(Inertia) 最小的一次,可选值为 'auto' 或正整数。默认值 'auto':
TCHouse-X 使用 K-means++ 进行初始化,配置为'auto'时,初始化过程执行一次。
max_iter
INT
300
最大迭代次数:指定单次 K-means 算法运行时的最大迭代步数。算法将在达到此次数或质心收敛(不再发生显著移动)时停止运行。取值为正整数。
tol
FLOAT
1.0e-4
收敛阈值:当质心位置的相对变化量(基于 Frobenius 范数衡量)小于该值时,系统判定模型已收敛并提前停止迭代。
random_state
INT
42
随机种子:用于控制质心初始化的随机数生成器。传入固定整数可确保多次运行的结果完全一致,便于实验复现。范围为[0, 4294967295]。
algorithm
STRING
'lloyd'
算法实现选择, 可选值如下:
'lloyd' (默认):经典的期望最大化(EM)算法。通用性强,内存占用低,适用于大多数场景。
'elkan':基于三角不等式优化的变体。在数据簇结构明显时,通过减少冗余的距离计算大幅提升速度。由于需要分配一个额外的形状数组(n_samples,n_clusters),因此会占用更多内存。