Ch.08
K均值聚类:无标签分组
在没有任何标签的情况下,仅根据数据将相似样本聚成K类的无监督学习代表算法。通过K均值,从概念→直观→公式→应用,理解Ch01中“无监督”如何落地,以及如何用距离构造K个簇。结合Ch02的KNN距离公式,通过可视化理解“按类聚集”的迭代过程。
按章节的机器学习图示
选择章节后,下方图示会切换为该章节内容。可一览机器学习脉络。
将各点分配到最近的中心,再将中心更新为所属点的均值,反复进行。
① 数据 — 无标签的点分布在特征空间中
点: 数据
K均值聚类:无标签分组
K均值是什么? — 当没有标签、只有数据时,按最近中心将点划分成K个簇。距离采用Ch02中的欧氏距离。每个簇由一个中心(质心)表示,反复执行“各点归入最近中心”和“各簇点坐标求平均作为新中心”,直到收敛。
K表示“分成几类” — K均值中簇数K由用户事先给定。K=2即两类,K=3即三类。因无真实标签,“哪一类是正确答案”不可知,只能得到“相似样本聚在一起”的结果。实践中常结合领域知识、肘部法或轮廓系数等选择K。
目标:最小化簇内距离和(SSE) — 算法最小化畸变(SSE)。中心更新式表示“该簇内点的坐标平均”,这样更新会使该簇的SSE下降。
若觉得公式难懂 — 距离公式就是在量“一个点和一个中心之间的长度”;SSE 是把“簇有多紧”用一个数表示;中心更新式就是“该簇内点坐标的平均”。下面公式说明中会按符号逐一解释。
Ch01无监督学习的具体实现 — K均值是“无标签、找结构/聚类”的典型算法,常用于客户分群、文档/图像聚类、异常检测预处理等。
客户细分 — 仅有购买记录、无客户类型标签时,用K均值将相似客户聚成若干群,再由人为各群赋予含义(如VIP、流失风险),用于后续Ch09、Ch12等任务。
直观且实现简单 — 仅需“分配”和“求平均”两步迭代,便于实现,且在二维上可直观看到“聚成几团”的过程。
聚类 — 客户细分、主题/文档聚合、图像颜色或区域压缩、基因表达分组等。
预处理与特征摘要 — 将簇编号作为新特征输入监督模型,或仅保留簇中心以压缩数据。
K的选择 — K由用户指定;可对多个K比较SSE或轮廓等指标(如肘部法)再选定。
小结
(1) 输入:无标签点、簇数 。
(2) 初始化:放置 个中心(随机或启发式)。
(3) 分配:各点归入最近中心所属簇。
(4) 更新:各簇点的坐标均值作为新中心。
(5) 重复:3–4 步直至分配与中心不再变化。
目标:最小化 SSE(畸变)。
中心更新式:
解题步骤与例题见下表。
术语说明
- 项目距离平方
- 说明两点 、 的欧氏距离平方:。仅比较时可不必开方。
- 项目分配
- 说明给定点和 个中心时,计算到各中心的距离(或距离平方),最小者对应的中心编号(从1开始)即为该点所属簇。
- 项目中心更新
- 说明簇 内点的 、 坐标分别求平均得新中心 ;需取整时再四舍五入。
- 项目SSE
- 说明簇内 ,即各点到中心的距离平方和。
| 项目 | 说明 |
|---|---|
| 距离平方 | 两点 、 的欧氏距离平方:。仅比较时可不必开方。 |
| 分配 | 给定点和 个中心时,计算到各中心的距离(或距离平方),最小者对应的中心编号(从1开始)即为该点所属簇。 |
| 中心更新 | 簇 内点的 、 坐标分别求平均得新中心 ;需取整时再四舍五入。 |
| SSE | 簇内 ,即各点到中心的距离平方和。 |
例(分配)
中心 、,点 所属簇号?
距离平方 ,,相等时取 1。→ 答案 1
例(中心更新)
簇 1 含点 、,则新中心 ,。→ (2, 3)
公式说明
① 距离
什么意思? — 表示一个数据点 与一个中心 之间的直线距离(用尺子量的长度)。
符号怎么读? — 是该点第 个特征的值, 是中心第 个坐标。例如特征有两个(如身高、体重)时,、 就是这两个数;先算 ,再开平方根,在二维下就是勾股定理的“直线长度”。
数字例子 — 点 、中心 时,差为 、。距离平方 ,距离 。
在 K 均值里 — 只需要比较哪个中心更近,所以可以不开方,只算距离平方 ;更小的那个就是更近的中心。
一句话:求点与中心之间直线距离(或距离平方)的公式。
② 目标(SSE)
什么意思? — 把“每个簇里、各点到该簇中心距离的平方”全部加起来,得到的总和叫 SSE(畸变)。
符号怎么读? — =簇的编号(1、2、…)。=属于第 簇的点的集合。=第 个点的坐标。=第 簇的中心。 就是点 到该中心的距离平方。
为什么用平方? — 用平方后“越远越大”,且都是正数,这样 就能表示簇有多散。 越小说明点越紧挨中心,算法通过移动中心来减小 。
例子 — 若某簇有 3 个点,它们到中心的距离平方分别是 1、4、9,则该簇的贡献是 。 就是所有簇的这种贡献之和。
一句话:表示簇有多紧的一个数;越小越好。
③ 中心更新
什么意思? — 把第 簇里所有点的坐标平均一下,用这个平均作为新的中心。
符号怎么读? — =第 簇里点的个数。=这些点的 、 坐标分别全部相加。再乘上 就得到平均。
数字例子 — 某簇有 、、 三个点,则 。 的和 , 的和 。新中心 , → (3, 2)。
为什么是平均? — 把中心移到点的平均位置,可以减小该簇内“点到中心距离平方之和(SSE)”,所以 K 均值用这个公式更新中心。
一句话:新中心 = 该簇内点的 平均、 平均。