什么是聚类
聚类是一种将数据自动分组的机器学习技术,其核心目标是让同一组(簇)内的数据尽可能相似,而不同组之间的数据尽可能不同。 就像整理书桌时,我们会把文具、书本、电子设备分类摆放一样,聚类算法通过分析数据特征,智能地将未标注的数据划分到有意义的类别中。
例如,电商平台可以用聚类对用户分组实现精准营销,生物学家能通过基因聚类发现潜在物种关系。 与有监督的"分类"不同,聚类属于无监督学习,不需要预先提供标签,而是让数据自主"物以类聚"。
常见的聚类方法包括K-means、层次聚类、DBSCAN等。
现实应用场景
-
•
客户细分: 电商平台根据用户购买行为将客户分组,制定个性化营销策略
-
•
图像处理: 通过减少图像中使用的颜色数量来压缩图像或实现图像分割
-
•
文档分类: 自动将相似主题的文档归类,辅助内容组织和信息检索
-
•
异常检测: 通过识别与主要簇距离较远的数据点来检测异常现象
K-means 聚类算法简介
K-means聚类算法 是一种无监督学习算法,这意味着它不需要人为标记的训练数据,而是能够自主发现数据中的模式和结构,将相似的数据点归为一组。
在算法名称中,"K"代表我们希望将数据分成的簇的数量。算法通过迭代找到每个簇的中心点,称为"质心",并将数据点分配到最近的质心所代表的簇中。
K-means 聚类算法工作流程
选择 K 值
确定将数据分成几个群组
选择质心
随机选择 K 个点作为初始簇中心
分配数据点
将每个数据点分配到最近的质心所在的簇
迭代质心
重新计算每个簇的中心点,重复步骤2和3直到质心位置稳定
算法可视化演示
算法分步解读
第一步:选择 K 值
K-means 算法的第一步是选择要将数据分成多少个簇。这个值需要根据实际问题和数据特点来确定。选择合适的 K 值对算法效果至关重要。
如果不确定最佳的 K 值,可以使用后面将介绍的肘部法则来辅助确定。
第二步:初始化质心
在确定了 K 值后,算法会随机选择 K 个位置作为初始质心。这些质心代表着各个簇的中心点。
初始质心的选择会影响算法的收敛速度和最终结果。常见的初始化方法有随机选择和 K-means++ 等。
第三步:分配数据点
将每个数据点分配到与其距离最近的质心所代表的簇。距离通常使用欧几里得距离(直线距离)来计算,也可以根据具体问题选择其他距离度量方法。
第四步:迭代质心
重新计算每个簇的中心点。新的质心是簇内所有数据点坐标的平均值。这一步使得质心位置更能代表簇内数据的分布。
对于簇 j,新的质心计算公式为: 质心 j = (簇 j 中所有点的坐标和) / (簇 j 中点的数量)
重复步骤二和步骤三,直到满足终止条件。常见的终止条件包括:
- 质心位置不再明显变化
- 数据点的簇分配不再变化
- 达到预设的最大迭代次数
算法结果
算法收敛后,我们得到的是 K 个簇以及每个簇的质心。此时,数据已经被分成了 K 个相似性较高的组,可以用于后续的分析和决策。
知识拓展:如何选择最佳的 K 值
在应用 K-means聚类算法时,我们常常面临一个问题:应该将数据分成多少个簇?肘部法则(Elbow Method)是一种常用的确定最佳 K 值的方法。
肘部法则的基本思想是:随着簇数量的增加,簇内数据点的总体距离(也称为误差平方和或畸变度)会逐渐减小,但增加到一定程度后,继续增加簇数对降低误差的效果会变得很小。
在误差与簇数量的关系图上,会出现一个"肘部",即曲线从陡峭变为平缓的拐点。这个拐点对应的 K 值往往是比较理想的簇数量。
肘部法则的工作原理:
- 对不同的 K 值(从 1 到某个上限)运行 K-means 聚类算法
- 对每个 K 值,计算所有数据点到其所属簇中心的距离平方和(即 WSS,Within-Cluster Sum of Squares)
- 绘制 WSS 随 K 变化的曲线图
- 寻找曲线中的"肘部",即曲线从陡降变为平缓的拐点
探索肘部法则
知识检测
选择题
1. K-means 算法属于哪一类机器学习方法?
2. K-means 算法中的"K"代表什么?
多选题
3. 以下哪些关于K-means 聚类算法的描述是正确的?(多选)
填空题
4. K-means 聚类算法中,每个数据点被分配到与其 的质心所在的簇。
5. 在迭代质心的过程中,我们将每个簇中各个数据点的 当作新的质心。
连线题
6. 请将左侧的概念与右侧的描述连接起来