算法介绍
K-means(K-均值) 是一种经典的无监督学习算法,通过迭代过程实现数据的自动化聚类分析。该算法旨在将数据集划分为 K 个互不相交的簇。其核心逻辑是通过计算样本间的相似度(通常采用欧几里得距离),将相似的对象归入到同一个类群中。
算法执行流程如下:
1. 初始化:根据预设的 K 值,在特征空间中随机选取 K 个点作为初始聚类中心。
2. 分配阶段:计算每个样本到各个聚类中心的距离,并将其指派给距离最近的中心,形成初步聚类。
3. 迭代更新:计算每个簇内所有对象的平均值,并以此更新聚类中心的位置。
4. 收敛判定:重复上述过程,直到聚类中心不再发生显著变化或达到预设的迭代次数。
算法参数介绍
入参 | 类型 | 默认值 | 说明 |
n_clusters | INT | 无默认值,必填项 | 定义目标簇数。须满足 2 ≤ n_clusters ≤ n_samples,其中 n_samples 为训练样本数。未传或超出范围时报错。 |
n_init | STRING|INT | '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),因此会占用更多内存。 |