聚类 的目标是:将数据集中的样本划分为若干个不相交的子集(称为“簇”或“类”),使得同一簇内的样本尽可能相似,而不同簇的样本尽可能不同。

- 无监督:这意味着我们进行聚类时,数据没有预先标注的标签或类别,算法需要自己从数据中发现内在的结构和模式。
- 相似性:通常由距离或相似度函数来定义,距离越小(或相似度越高),样本越可能属于同一簇。
聚类算法的关键特性
- 探索性:主要用于数据探索、发现隐藏模式,而不是预测。
- 主观性:对“什么是好的聚类”没有绝对标准,结果可能因算法、参数或距离度量的选择而异。
- 无唯一答案:同一个数据集,根据不同业务目标,可能有多种合理的划分方式。
常见聚类算法类型(经典分类)
根据其形成簇的方式,主要分为以下几类:
| 类型 | 核心思想 | 代表算法 | 优点 | 缺点 |
|---|---|---|---|---|
| 基于划分 | 预先指定簇数K,通过迭代优化将数据划分成K个簇。 | K-Means, K-Medoids | 简单、高效,适用于球形簇和大数据集。 | 需指定K;对噪声和离群点敏感;只能发现凸形簇。 |
| 基于层次 | 通过计算样本间的相似度,构建一个树状的嵌套簇结构。 | AGNES(自底向上), DIANA(自顶向下) | 无需指定簇数;可获得簇的层次关系。 | 计算复杂度高;一旦合并或分裂,步骤不可逆。 |
| 基于密度 | 将“簇”定义为数据空间中样本密集的区域,被低密度区域分隔。 | DBSCAN | 能发现任意形状的簇;对噪声鲁棒;无需指定簇数。 | 对密度变化大的数据效果差;高维数据中距离度量可能失效。 |
| 基于模型 | 假设每个簇都服从某种概率分布(如高斯分布),通过拟合模型来聚类。 | 高斯混合模型 | 提供概率归属,更灵活。 | 计算复杂;可能过拟合。 |
| 基于图论 | 将数据点视为图的节点,根据连接关系进行切割或社区发现。 | 谱聚类 | 能发现复杂形状的簇;对数据分布假设少。 | 计算开销大;需构建合适的相似度图。 |
核心步骤与技术要点
-
特征选择与预处理:
- 特征工程:选择合适的特征至关重要,不相关的特征会引入噪声。
- 标准化/归一化:当特征量纲不同时(如收入 vs. 年龄),必须进行标准化,否则大数值特征将主导距离计算。
-
相似性/距离度量:
- 欧氏距离:最常用,适用于连续型数值特征。
- 曼哈顿距离、余弦相似度(尤其适用于文本、高维稀疏数据)、杰卡德距离(适用于集合数据)等。
-
确定簇的数量(K值):
- 肘部法则:绘制不同K值下的损失函数(如K-Means的SSE)曲线,选择拐点(肘部)。
- 轮廓系数:计算所有样本的平均轮廓系数,越接近1,聚类质量越好。
- 领域知识:结合业务理解确定。
-
结果评估:
- 内部评估(无真实标签):轮廓系数、戴维森堡丁指数等,评估簇内的紧密度和簇间的分离度。
- 外部评估(有真实标签):调整兰德指数、互信息等,比较聚类结果与真实标签的一致性。
- 业务评估:将聚类结果交给业务专家判断,看是否有实际意义。
典型应用场景
- 客户细分:根据消费行为、 demographics 将用户分组,进行精准营销。
- 图像分割:将图像像素聚类成不同区域。
- 社交网络分析:发现社区或兴趣圈子。
- 异常检测:离群点通常不属于任何密集的簇。
- 数据压缩:用簇中心代表该簇所有样本。
- 生物信息学:对基因或蛋白质进行分组。
选择聚类算法的简单指导
- 数据规模大,特征为数值型,且预期是球形簇? → 试试 K-Means。
- 数据有噪声,簇的形状不规则? → 试试 DBSCAN。
- 想了解数据的层次结构,且数据量不大? → 试试 层次聚类 并绘制树状图。
- 数据有复杂的流形结构? → 试试 谱聚类。
- 需要软分配(一个样本以概率属于多个簇)? → 试试 高斯混合模型。
聚类是一种强大的数据探索工具,掌握其基础,关键在于理解:
- 无监督的本质和相似性度量的核心作用。
- 几类主要算法的核心思想和适用场景。
- 没有“最好”的算法,必须根据数据特点、业务目标和实验评估来选择。
入门时,建议从 K-Means 和 DBSCAN 这两个最具代表性的算法开始动手实践,能快速建立直观感受。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。