一、聚类算法的本质:让“相似”的数据自动归群
聚类属于无监督学习,目标是将无标签数据分为若干组(簇),核心逻辑是:
• 相似性度量:用距离(如欧氏距离)或相似度(如余弦相似度)衡量样本间的关联;
• 分组原则:簇内样本尽可能相似,簇间样本尽可能相异。
类比:图书馆按主题分类书籍,聚类算法则通过数据特征自动完成“主题分组”。
二、K-means聚类:基于中心的迭代分组
1. 核心步骤:“定位中心-分配样本-更新中心”循环
1. 初始化K个聚类中心:随机选择K个样本点或按策略初始化(如K-means++);
2. 分配样本:将每个样本分到离其最近的中心所在簇;
3. 更新中心:计算各簇样本的均值,作为新的聚类中心;
4. 重复步骤2-3:直到中心位置不再显著变化或达到最大迭代次数。
2. 数学表达与优化目标
• 目标函数(最小化簇内平方和,WSS):
\min \sum_{i=1}^{K}\sum_{x∈C_i}\|x - \mu_i\|^2
其中 C_i 是第i个簇, \mu_i 是簇中心。
3. 关键挑战与改进
• 初始化敏感:随机初始化可能导致局部最优(如K=2时,两组数据被错误合并);
◦ 改进:K-means++初始化,优先选择距离已选中心远的点,提升全局最优概率。
• K值选择:
◦ 手肘法:绘制WSS随K变化的曲线,拐点(“手肘”)处为最优K(如K=3时WSS下降明显,K=4后趋于平缓);
◦ 轮廓系数:计算样本i的轮廓值 s(i) = \frac{b(i)-a(i)}{\max(a(i),b(i))} ,其中a(i)是簇内距离,b(i)是最近簇的距离,整体轮廓系数越高,聚类效果越好。
三、层次聚类:构建数据的“树形族谱”
1. 两种聚类方向
• 凝聚式(自底向上):
1. 每个样本初始为独立簇;
2. 合并最相似的两个簇,直到达到预设簇数或停止条件;
• 分裂式(自顶向下):
1. 所有样本初始为一个簇;
2. 递归分裂最不相似的簇,直到每个簇足够小;
• 注:凝聚式更常用,计算复杂度低于分裂式。
2. 簇间距离的度量方式
• 单链接(最小距离):两簇中最近样本的距离,易形成链式聚类;
• 全链接(最大距离):两簇中最远样本的距离,倾向形成紧凑簇;
• 平均链接:两簇所有样本对的平均距离,平衡性较好;
• 沃德链接(Ward):最小化合并前后的WSS增量,适用于球形簇。
3. 可视化:树状图(Dendrogram)
• 横轴是样本,纵轴是合并距离,可通过切割树状图确定簇数(如在某距离阈值处截断,得到K个簇)。
四、K-means vs 层次聚类:核心差异对比
维度 K-means 层次聚类
簇数K 需预先指定(影响结果) 可通过树状图动态确定
数据假设 假设簇为球形、大小相似 无严格假设,适应任意形状
计算复杂度 (n样本,i迭代) (全链接),大数据需优化
异常值敏感 敏感(中心受异常值影响) 相对鲁棒(距离度量可调整)
应用场景 大数据聚类(如用户分群) 小数据探索(如基因表达分析)、需要层次结构的场景
五、实践案例:电商用户分群的聚类选择
1. 场景:根据用户消费金额、频次、品类偏好分群,辅助营销策略;
2. K-means方案:
◦ 用手肘法确定K=4(高消费高频、高消费低频、中消费中频、低消费低频);
◦ 对每个簇计算均值,生成用户画像;
3. 层次聚类方案:
◦ 用平均链接构建树状图,在距离阈值处截断得到5个簇;
◦ 发现“年轻妈妈群体”(购买母婴产品为主)这一细分簇,K-means因预设球形簇可能遗漏;
4. 结论:层次聚类更适合探索未知细分群体,K-means更适合规模化的常规分群。
六、聚类算法的进阶技巧与陷阱
• 数据预处理:
◦ 标准化特征(如消费金额与频次的量纲差异大,需归一化);
◦ 降维(如PCA)处理高维数据,避免“维度诅咒”;
• 距离度量适配:
◦ 文本数据用余弦距离(关注方向而非长度);
◦ 类别特征用汉明距离(不同值的特征数);
• 避免过度解读:
◦ 聚类结果是数据内在结构的反映,需结合业务定义簇的含义(如“簇1”是否为“高价值用户”需业务验证);
◦ 不同聚类算法或参数可能生成不同结果,需交叉验证。
七、总结:从“预设分组”到“结构发现”
K-means与层次聚类代表了无监督学习中两种典型思路:前者通过迭代优化实现高效分组,适合处理大规模数据;后者通过构建层次结构揭示数据的内在关联,适合探索性分析。两者的核心价值在于:无需标签即可从数据中挖掘潜在模式,为业务决策提供数据支撑——而理解它们的假设与局限,是将“数据分组”转化为“业务洞察”的关键一步。