1. 聚类算法概述:从数据中发现隐藏结构
在数据科学领域,我们常常会遇到没有标签的数据集,这时候就需要无监督学习技术来揭示数据的内在结构和规律。聚类分析作为无监督学习中最常用的技术之一,能够将相似的样本自动分组,形成有意义的簇结构。
1.1 聚类的基本概念
聚类试图将样本集划分为若干个不相交的子集,这些子集被称为簇(cluster)。每个簇代表了一组在某种意义下相似的样本。与分类不同,聚类不需要预先定义的类别标签,而是通过算法自动发现数据中的自然分组。
从形式上看,给定样本集D={x₁, x₂, ..., xₘ},其中每个样本xᵢ=(xᵢ₁, xᵢ₂, ..., xᵢₙ)是一个n维特征向量。聚类算法会将D划分为k个不相交的簇{C₁, C₂, ..., Cₖ},并为每个样本xᵢ分配一个簇标记λᵢ∈{1,2,...,k},表示xᵢ∈C_{λᵢ}。
1.2 聚类的应用价值
聚类技术在各个领域都有广泛应用:
- 客户细分:根据消费行为将客户分组,制定针对性营销策略
- 图像分割:将图像像素聚类,实现物体识别和边界划分
- 异常检测:识别远离主要簇的离群点,发现异常行为
- 数据预处理:作为特征工程的一部分,为后续建模提供新特征
在实际项目中,我经常使用聚类作为探索性数据分析(EDA)的工具。通过观察数据自动形成的簇结构,往往能发现意想不到的数据特性和业务洞见。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 聚类性能评估:如何衡量聚类效果
2.1 内部评估指标
当没有参考标签时,我们可以使用内部指标评估聚类质量。好的聚类应该满足:
- 簇内相似度高(同一簇的样本彼此相似)
- 簇间相似度低(不同簇的样本差异明显)
常用的内部指标包括:
- 轮廓系数(Silhouette Coefficient):综合考虑簇内凝聚度和簇间分离度
- Calinski-Harabasz指数:簇间离散度与簇内离散度的比值
- Davies-Bouldin指数:各簇相似度的平均值,值越小越好
2.2 外部评估指标
当有参考标签时,可以使用外部指标将聚类结果与真实标签对比:
| 指标名称 | 计算公式 | 解释 |
|---|---|---|
| Jaccard系数(JC) | a/(a+b+c) | 衡量聚类与参考标签的一致性 |
| FM指数(FMI) | √(a/(a+b)·a/(a+c)) | 综合考量准确率和召回率 |
| Rand指数(RI) | 2(a+d)/m(m-1) | 所有样本对中一致性的比例 |
其中:
- a:在聚类和参考标签中都属于同一类的样本对数
- b:在聚类中同簇但在参考中不同类的样本对数
- c:在聚类中不同簇但在参考中同类的样本对数
- d:在聚类和参考中都属于不同类的样本对数
在实际评估中,我发现RI对随机标签
