K 均值聚类算法学习总结
一、聚类算法基础认知
核心概念:聚类属于无监督学习,核心是把 “相似的样本” 自动分到同一组(簇),不需要预先标注的标签。主要挑战是怎么定义 “相似性”、评估聚类效果以及确定最好的聚类数量。
距离度量:
欧式距离:最常用的距离度量方式,衡量多维空间中两点的直线距离,能直观体现样本在空间中的远近关系。
曼哈顿距离:衡量两点在标准坐标系上的绝对轴距总和,适用于更强调轴方向距离的场景。
二、K 均值算法核心原理
算法步骤:
初始化:随机选 k 个样本作为初始聚类中心。
样本分配:计算每个样本到各聚类中心的距离,把样本分到最近的簇里。
更新中心:计算每个簇内所有样本的均值,作为新的聚类中心。
迭代收敛:重复样本分配和中心更新,直到聚类中心稳定或者达到最大迭代次数,得到最终聚类结果。
关键参数(基于sklearn.cluster.KMeans):
n_clusters:指定聚类簇的数量(k 值),要根据业务场景或评估指标来确定。
max_iter:最大迭代次数,用来控制算法运行的时间。
n_init:算法独立运行的次数,选取最优结果,避免陷入局部最优解。
random_state:固定随机种子,保证每次实验结果能重复出现。
三、聚类效果评估
CH 指标(Calinski-Harabasz):从两个方面评估聚类质量:
类内紧密度:计算类中各点与类中心的距离平方和。
类间分离度:计算各类中心点与数据集总中心的距离平方和。
指标特性:CH 值越大,说明类内越紧密、类间越分散,聚类效果就越好。
四、算法优缺点分析
优点:
原理简单直观,容易理解和实现。
计算效率高,适合处理大规模的常规数据集。
缺点:
k 值需要人工预先指定,很难准确确定最优数量。
对初始聚类中心敏感,可能会陷入局部最优解。
只能发现凸形分布的簇,难以识别任意形状的聚类结构。
五、实践应用流程
数据生成:用sklearn.datasets.make_blobs创建聚类数据集,关键参数有:
n_samples:样本的数量。
n_features:特征的维度。
centers:预设的类别数。
cluster_std:控制类内数据的分散程度。
聚类实现:通过KMeans模型对数据进行拟合,得到聚类标签。
结果可视化:绘制散点图展示聚类分布,标记出聚类中心,直观呈现聚类效果。
效果评估:计算 CH 指标,再结合可视化结果,综合判断聚类质量。
六、学习心得
K 均值算法作为经典的聚类方法,在数据探索、模式识别等场景中应用广泛。它的优势是高效和简洁,但也要注意 k 值选择和初始中心对结果的影响。通过这次学习,不仅掌握了算法的原理和实现流程,还理解了无监督学习中 “相似性度量” 和 “聚类评估” 的核心思想,为后续学习复杂聚类算法打下了基础。在实际应用中,要结合数据特点选择合适的距离度量和评估指标,这样才能得到更有意义的聚类结果。