文章目录
第6章:聚类算法 (Clustering)
你好,同学!欢迎来到无监督学习的世界。与监督学习不同,这里的我们没有“标准答案”(标签),我们的目标是在数据中发现隐藏的、内在的结构。聚类算法就是实现这一目标的核心工具,它试图将数据集中的样本划分为若干个不相交的子集,我们称之为“簇”(cluster)。本章我们将深入探讨三种最具代表性的聚类算法:K-均值 (K-Means)、层次聚类 (Hierarchical Clustering) 和 DBSCAN。它们分别代表了基于划分、基于层次和基于密度的聚类思想,是面试中考察无监督学习知识的绝对重点。
6.1 K-均值 (K-Means)
K-Means 是聚类算法中最经典、最常用的算法之一。它的思想简单直观,非常适合作为理解聚类问题的起点。
-
核心思想
K-Means 的核心思想可以概括为“物以类聚,人以群分”。具体来说,算法试图找到 K K K 个簇的中心点(质心),并将每个数据点分配给离它最近的质心,从而形成 K K K 个簇。其优化的目标是最小化所有数据点到其所属簇质心的距离平方和,这个值通常被称为“簇内平方和”(Within-Cluster Sum of Squares, WCSS)。当 WCSS 达到最小时,意味着每个簇内部的数据点都尽可能地紧密。 -
数学原理
K-Means 的目标是最小化损失函数 J J J,即簇内平方和:
J = ∑ k = 1 K ∑ x i ∈ C k ∥ x i − μ k ∥ 2 J = \sum_{k=1}^{K} \sum_{x_i \in C_k} \|x_i - \mu_k\|^2 J=k=1∑Kxi∈Ck∑∥xi−μk∥2
其中:- K K K 是我们预先指定的簇的数量。
- C k C_k Ck 是第 k k k 个簇的集合。
- x i x_i xi 是第 i i i 个数据点。
- μ k \mu_k μk 是第 k k k 个簇的质心 (centroid)。
- ∥ x i − μ k ∥ 2 \|x_i - \mu_k\|^2 ∥xi−μk∥2 代表数据点 x i x_i xi 到其所属簇质心 μ k \mu_k μk 的欧氏距离的平方。
由于直接求解该优化问题是 NP-hard 问题,K-Means 采用迭代的方式来寻找一个近似解。其算法流程如下(这是一种期望最大化 (EM) 思想的体现):
- 初始化 (Initialization):随机选择 K K K 个数据点作为初始质心 μ 1 , μ 2 , … , μ K \mu_1, \mu_2, \dots, \mu_K μ1,μ2

最低0.47元/天 解锁文章
721

被折叠的 条评论
为什么被折叠?



