Appearance
降维、聚类与矩阵分解
本页从“怎样表示数据”和“怎样发现无标签结构”出发,串联降维、聚类、概率模型与推荐系统中的矩阵分解。
一、降维、聚类与概率模型
1.1 主成分分析 PCA
PCA(Principal Component Analysis,主成分分析)是一种无监督降维方法。它不使用类别标签,而是寻找数据中方差最大的方向,把原始特征投影到较低维空间。
对中心化后的数据,第一主成分方向可以写成:
其中
PCA 的关键词:
- 无监督;
- 降维;
- 最大化投影方差;
- 用少量主成分保留主要信息;
- 不直接利用类别标签。
PCA 不等于聚类。它寻找的是新的坐标方向,而不是把样本分成若干类别。
PCA 投影与降维坐标
将样本投影到一个主成分方向,本质上是计算样本与该方向的内积。若
如果题目已经说明样本完成中心化处理,可以直接写成:
例如:
由于:
所以投影坐标为:
这里的
二者只有在样本恰好沿着
如果原始数据没有中心化,PCA 的标准投影应先减去训练集均值
直接计算
若这些方向正交归一,则样本的
PCA 计算速记
中心化 → 选择主成分方向 → 用内积计算投影坐标。
截断 SVD 与最佳低秩近似
设数据矩阵
设奇异值按降序排列:
只保留最大的
Eckart–Young 定理说明,在所有秩不超过
对应的最小重构误差为:
当目标是降低矩阵秩、进行低秩近似并最小化 Frobenius 重构误差时,应优先想到截断 SVD:
低秩近似速记
低秩近似 + 最小化 Frobenius 重构误差 → 截断 SVD。
PCA 也可以通过 SVD 实现。对中心化后的数据矩阵
前
再映射回原特征空间时得到:
所以 PCA 的前
其他常见矩阵分解的典型用途可以这样区分:QR 主要用于正交化和最小二乘,LU 主要用于求解一般线性方程组,Cholesky 适用于对称正定矩阵,而 SVD 常用于降维、低秩近似、伪逆和数值稳定性分析。
1.2 线性判别分析 LDA
线性判别分析(Linear Discriminant Analysis,LDA)是一种使用类别标签的监督降维方法。它寻找投影方向,使同一类别的样本尽量集中,同时让不同类别的类别中心尽量分离。
设共有
其中,
LDA 目标
让类间散度尽量大、类内散度尽量小。
在
实际数据中如果
LDA 的最大降维维度
由于类间散度矩阵的秩满足:
所以有
这意味着 LDA 的目标维度不能像普通无约束投影那样任意指定,而受到类别数量限制。
PCA 与 LDA 的区别
| 对比维度 | PCA | LDA |
|---|---|---|
| 是否需要类别标签 | 不需要 | 需要 |
| 学习范式 | 无监督降维 | 监督降维 |
| 优化目标 | 保留总体数据方差 | 类间分离、类内紧凑 |
| 最大有效维度 | 不超过原始特征维度 | 不超过 |
| 典型用途 | 压缩、去噪、可视化 | 判别性降维、分类前特征提取 |
经典的概率 LDA 分类模型通常还会假设各类别条件分布近似高斯,并共享协方差矩阵;但 Fisher 判别准则本身表达的是散度比优化。不能把 LDA 简单说成适用于任意数据分布,也不能把它和不使用标签的 PCA 混为一谈。
PCA 与 LDA 速记
- PCA:寻找总体方差最大的方向。
- LDA:寻找最容易区分类别的方向。
1.3 K-Means 聚类
K-Means 是典型的无监督聚类算法。给定簇数
典型目标函数是:
其中
- 根据距离把每个样本分配给最近的中心;
- 根据当前簇内样本重新计算中心;
- 重复以上步骤,直到目标函数基本不再下降。
K-Means 属于硬聚类:每个样本最终被分配给一个簇。它对距离度量、特征尺度和初始中心比较敏感,实际使用前通常需要考虑标准化和初始化策略。由于簇中心是样本均值,异常值会直接拉动中心位置;当数据含有较强噪声或大量离群点时,K-Means 的聚类结果可能明显受影响。
目标函数与收敛
K-Means 优化的是簇内平方误差和(SSE):
固定簇中心时,把每个样本分配给距离最近的中心,可以使每个样本对应的平方距离尽可能小;固定样本分配时,簇内样本的均值是平方误差和的最小化解:
因此,标准的 Lloyd 迭代中,分配步骤和中心更新步骤都会使
实际迭代通常在以下情况之一发生时停止:
- 所有簇中心的移动量小于设定阈值;
- 样本所属簇不再变化;
- 目标函数的下降量小于设定阈值;
- 达到最大迭代次数。
“目标函数不再下降”说明算法到达一个稳定点,通常意味着簇中心和样本分配已经收敛,但不代表一定得到全局最优解。K-Means 对初始中心敏感,不同初始化可能收敛到不同的局部最优解,因此实践中常用多次随机初始化并选择 SSE 较小的结果。
收敛也不意味着簇内方差为零。只有当每个簇中的所有样本都恰好等于该簇中心时,才有
常见距离度量
距离度量通常作用在差向量
也就是每一维的差取绝对值,再将所有维度相加。例如:
则:
常见距离之间的关系如下:
| 距离 | 公式 | 常用名称 |
|---|---|---|
| 曼哈顿距离 | ||
| 欧氏距离 | ||
| 切比雪夫距离 | ||
| 闵可夫斯基距离 |
闵可夫斯基距离是更一般的形式:
取不同的
闵可夫斯基距离虽然包含曼哈顿距离,但它本身是更一般的参数化表达;只有指定
K-Means 的经典目标函数使用平方欧氏距离:
使用距离度量时,要区分 K-Means 默认目标中的欧氏距离和单独定义的曼哈顿距离。改变距离度量可能改变样本分配方式,也可能需要相应调整簇中心的更新方式。
余弦相似度:方向与尺度
余弦相似度比较的是两个非零向量从原点出发的方向夹角,而不是它们之间的平移距离或长度差异:
余弦相似度是相似度指标,不是
因此,余弦相似度对正比例缩放不敏感。对于
因为正比例缩放只会改变向量长度,不会改变从原点出发的射线方向。相反,给向量的每个分量加上常数,等价于移动向量终点而保持原点不动,通常会改变方向,因此余弦相似度一般也会改变。这不是“把坐标系和原点一起平移”,而是对向量本身做了加法变换。
| 变换 | 几何作用 | 对余弦相似度的影响 |
|---|---|---|
| 沿原射线伸长或缩短 | 不变 | |
| 反转向量方向 | 若只反转一个向量,余弦相似度变为相反数 | |
| 移动终点,原点不动 | 通常改变 |
余弦相似度的变换示例
设
若改为正比例缩放,例如
还可以用一组正交向量观察数值变化。原来:
因此:
同时给两个向量的每个分量加
于是:
原本的余弦相似度为
余弦相似度的取值范围通常为
余弦相似度速记
余弦相似度看方向:正缩放不变,加常数通常改变;它对长度不敏感,但对平移不具有不变性。
1.4 高斯混合模型 GMM
GMM(Gaussian Mixture Model,高斯混合模型)假设数据由多个高斯分布混合产生:
其中:
是高斯成分的数量; 是第 个成分的混合权重,满足 且 ; 是均值; 是协方差矩阵; 是对应的高斯密度。
GMM 通常通过隐藏变量
GMM 与 K-Means 的区别
两者都可以做聚类,但建模方式不同:
| 方法 | 聚类方式 | 主要依据 | 输出 |
|---|---|---|---|
| K-Means | 硬聚类 | 到簇中心的距离 | 一个确定的簇编号 |
| GMM | 软聚类 | 属于各高斯成分的后验概率 | 各成分的概率或责任度 |
例如,对某个样本
表示该样本有较大概率属于第一个高斯成分,但仍保留属于第二个成分的不确定性。K-Means 则通常直接给出一个确定的簇编号。
EM 算法中的 E 步和 M 步
GMM 中,给定当前参数,E 步计算隐藏类别的后验概率,也称责任度:
因此:
M 步利用 E 步得到的责任度,重新估计 GMM 的参数:
其中
所以:
混合权重
责任度越大的样本,对第
协方差也根据责任度加权更新:
GMM 中的协方差结构不是固定只能取对角矩阵,常见选择包括:
| 协方差结构 | 含义 | 表达能力与代价 |
|---|---|---|
| full | 每个成分使用完整协方差矩阵 | 能表示特征间相关性,但参数和计算成本较高 |
| diagonal | 每个成分使用对角矩阵 | 假设成分内部各维不相关,计算较简单 |
| spherical | 每个成分使用一个标量方差乘单位阵 | 假设各方向方差相同,参数最少 |
| tied | 所有成分共享同一个协方差矩阵 | 在表达能力和参数量之间折中 |
需要区分协方差的数学合法性和模型采用的协方差结构。任意协方差矩阵都应当是对称半正定矩阵;对于使用通常多维高斯密度公式的非退化模型,通常要求
正定性保证
GMM + EM 速记
- E 步:计算隐藏类别的后验概率(责任度)。
- M 步:利用责任度更新混合权重、均值和协方差。
1.5 层次聚类
层次聚类通过不断合并或拆分样本,构造样本之间的层次结构。最常见的是自底向上的凝聚式层次聚类:
- 开始时每个样本单独作为一个簇;
- 根据簇间距离合并最相近的两个簇;
- 重复合并,直到形成一棵树状结构。
最终结果通常用树状图(dendrogram)表示。选择不同的切割高度,可以得到不同粒度的扁平簇集合:
因此,层次聚类并不是“只能生成固定层次结构、无法得到普通簇集合”。它先生成层次结构,再通过选择切割高度得到所需的簇划分。常见的簇间距离或链接方式包括 single linkage、complete linkage、average linkage 和 Ward linkage。
HAC 的链接准则
在凝聚式层次聚类(HAC)中,每一轮都要选择两个最接近的簇进行合并。这里的“两个簇之间的距离”不是唯一规定的,而是由链接准则(linkage criterion)定义。设两个簇为
| 链接准则 | 簇间距离定义 | 直观含义 |
|---|---|---|
| Single Linkage | 看跨簇样本中最近的一对 | |
| Complete Linkage | 看跨簇样本中最远的一对 | |
| Average Linkage | 看所有跨簇点对距离的平均值 | |
| Ward Linkage | 合并后簇内平方误差的增加量 | 选择使簇内 SSE 增加最少的合并 |
因此,Complete Linkage 的关键公式是:
它会倾向于避免合并后跨度过大的簇,通常更偏好得到直径较小、较紧凑的簇。相对地,Single Linkage 只关注最近邻,容易产生“链式效应”:一串逐步相邻的样本可能被连接成很长的簇。
Ward Linkage 常在欧氏距离下使用。如果
它每一步选择使
层次聚类的特点是:
- 可以观察不同粒度下的聚类结构;
- 通常不需要像 K-Means 那样一开始就指定
; - 一旦得到层次树,可以通过不同切割高度获得不同的簇数;
- 计算和存储成本可能随样本数量增加而较高。
“不需要预先指定
1.6 DBSCAN 密度聚类
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)根据局部密度形成簇,主要参数是:
:邻域半径; - MinPts:一个点邻域内被视为高密度所需的最少样本数。
对样本
若邻域内的样本数达到 MinPts,则
DBSCAN 不要求预先指定簇数
DBSCAN 速记
不需要预先指定簇数
直观上,DBSCAN 会把密集且相互可达的样本连成一簇,而把孤立点保留为 Noise。它能够发现非球形簇,这是基于到中心距离的 K-Means 不容易处理的情况。
DBSCAN 的优势包括:
- 不需要事先指定簇数;
- 可以识别噪声点和离群点;
- 可以发现任意形状的高密度区域。
它的局限包括:
- 对
和 MinPts 的选择敏感; - 不同簇密度差异很大时,单一密度阈值可能不合适;
- 高维空间中的距离和密度判断可能退化。
按聚类机制分类
除了按具体算法记忆,还可以按“簇是如何形成的”进行归类:
| 聚类类型 | 核心做法 | 典型算法 | 常见特点 |
|---|---|---|---|
| 划分式聚类 | 直接把样本划分为若干簇 | K-Means、K-Means++、K-Medoids | 通常需要指定簇数或其他规模参数 |
| 层次聚类 | 逐步合并或拆分簇,形成树状结构 | Agglomerative、Divisive | 可通过切割树状图得到不同粒度的结果 |
| 密度聚类 | 根据密度连通区域形成簇 | DBSCAN | 不必指定 |
| 模型聚类 | 假设数据来自若干概率分布 | GMM | 通过概率或责任度表达软归属 |
| 图聚类 | 根据样本相似图构造嵌入后聚类 | 谱聚类 | 利用图结构,适合非凸或非球形簇 |
K-Means++ 中的“++”表示更合理的初始中心选择策略:它倾向于选择彼此分散的初始中心,以降低 K-Means 落入较差局部最优的概率。K-Means++ 仍然使用 K-Means 的均值中心、样本分配和 SSE 目标,不是与 K-Means 完全不同的聚类目标。
层次聚类还可以按构造方向区分:
- Agglomerative(凝聚式、自底向上):从每个样本各自成簇开始,不断合并簇;
- Divisive(分裂式、自顶向下):从所有样本组成一个簇开始,不断拆分簇。
1.7 聚类算法对比
| 算法 | 核心思想 | 是否需要预先指定 | 聚类结果或特殊能力 |
|---|---|---|---|
| K-Means | 距离均值中心、反复更新中心 | 通常需要 | 硬聚类,容易受异常值影响 |
| GMM | 多个高斯分布混合 | 通常需要成分数 | 软聚类,输出概率 |
| 层次聚类 | 构造树状层次结构 | 不必一开始指定 | 需选择切割高度得到簇数 |
| DBSCAN | 根据局部密度连通 | 不需要 | 任意形状聚类、识别噪声 |
| 谱聚类 | 相似度图与图拉普拉斯特征分解 | 通常需要 | 适合非凸、非球形簇,但分解成本较高 |
聚类算法的高频辨析点是:
- K-Means 每轮进行“分配样本 → 重新计算簇中心”;
- GMM 是软聚类,一个样本可以对多个簇具有不同归属概率;
- 层次聚类可以通过切割树状图得到不同数量的扁平簇;
- DBSCAN 不需要提前指定簇数,并且能够识别噪声点;
- K-Means++ 主要改进初始中心选择,仍属于 K-Means 的划分式聚类框架;
- Agglomerative 是自底向上合并,Divisive 是自顶向下拆分;
- HAC 的 Single、Complete、Average、Ward 分别对应最近点、最远点、平均距离和合并后 SSE 增量;
- 谱聚类先构造相似度图,再在图拉普拉斯特征向量构成的低维空间中聚类。
1.8 谱聚类
谱聚类(Spectral Clustering)把样本看成图中的节点,把样本之间的相似性看成边的权重。它不直接在原始特征空间中寻找若干个几何中心,而是先利用图结构提取样本的低维表示,再进行聚类。
典型流程是:
图拉普拉斯矩阵
设
也可以只连接
最基本的未归一化图拉普拉斯矩阵为:
实际算法还可能使用归一化图拉普拉斯矩阵,例如:
不同变体的具体矩阵形式略有区别,但共同思想都是利用图的连接结构表示样本之间的相似关系。
特征分解与低维嵌入
求图拉普拉斯矩阵最小的
将这些特征向量按列组成矩阵:
矩阵
因此,谱聚类本身的核心不是在原始空间中反复更新簇中心;如果流程最后使用 K-Means,更新的也是图嵌入空间中的中心。相似度图和特征值分解会带来较高的存储与计算开销,这也是谱聚类在超大规模数据上通常需要稀疏图或近似算法的原因。
为什么能处理非凸簇?
K-Means 直接依据样本到均值中心的欧氏距离优化簇内平方误差,因此更适合近似球形或凸形的簇。谱聚类先利用相似度图保留局部连接关系,即使两个样本在原空间中不适合用一个中心描述,只要它们在图上具有较强的连通结构,也可能在低维嵌入空间中被分开。
因此,谱聚类常用于:
- 非球形或非凸形状的簇;
- 由局部相似关系定义的聚类任务;
- 样本关系比原始坐标更重要的场景。
与其他聚类算法的辨析
| 算法 | 中心或结构 | 是否能识别噪声 | 典型特点 |
|---|---|---|---|
| K-Means | 簇内样本的均值中心 | 通常不能单独标记 | 指定 |
| K-Medoids | 簇内实际样本中的代表点 | 通常不能单独标记 | 对异常值通常比均值中心更稳健 |
| DBSCAN | 局部密度与密度连通 | 可以 | 不必指定 |
| 层次聚类 | 合并或拆分形成的树状结构 | 不是核心机制 | 可按树状图的不同高度切割 |
| 谱聚类 | 相似度图与图拉普拉斯特征向量 | 不是核心机制 | 适合非凸簇,通常在嵌入空间中使用 K-Means |
需要特别区分“中心”的含义:
- K-Means 更新的是簇内样本的均值,均值不一定是原数据中的某个样本;
- K-Medoids 选择的是簇内一个实际存在的样本作为代表点,也就是 medoid;
- 谱聚类不以某个原始空间中的中心点作为核心,而是通过图结构构造新的嵌入。
谱聚类的代价主要来自相似度图的构造和特征值分解。样本量较大时,通常使用稀疏近邻图、近似特征分解等方式降低存储和计算成本。
二、矩阵分解在推荐系统中的应用
推荐系统常把用户和物品的交互记录组织成用户-物品矩阵:
其中
2.1 潜在因子矩阵分解
矩阵分解用低维潜在向量表示用户和物品:
其中:
:用户潜在表示; :物品潜在表示; :潜在因子维度,通常远小于用户数和物品数。
用户
也可以加入用户偏置和物品偏置:
只在已观测交互集合
这说明推荐系统中的矩阵分解既包含低秩建模,也包含对缺失交互的预测。
2.2 PCA:特征降维与去噪
PCA 可以把高维用户特征、物品特征或交互衍生特征压缩为低维表示:
它主要用于:
- 降低特征维度;
- 去除部分噪声;
- 减少后续计算量;
- 提取方差较大的主要方向。
PCA 通常是推荐流程中的预处理或表示学习工具,而不是直接针对缺失评分进行预测的协同过滤模型。对中心化数据做 SVD,可以高效实现 PCA。
2.3 NMF:非负潜在因子
NMF(Non-negative Matrix Factorization,非负矩阵分解)要求矩阵及其因子非负:
非负约束使潜在因子更容易解释为“部分的叠加”。在用户-物品评分矩阵中,可以把
NMF 的特点是:
- 适合非负评分、计数或交互强度;
- 潜在因子通常具有较好的可解释性;
- 属于低秩分解和潜在因子建模方法;
- 真实推荐数据有缺失项时,也需要通过掩码或只在观测项上优化。
2.4 QR:推荐模型训练中的数值求解工具
QR 分解写成:
其中
推荐系统训练潜在因子时,如果固定物品矩阵
这类子问题可以使用 QR 等数值线性代数工具求解。因此 QR 虽然不是直接输出推荐结果的协同过滤算法,但可以作为推荐模型训练过程中的数值求解方法。
2.5 SVD:低秩近似与协同过滤
对一个适合分解的评分矩阵,可以做奇异值分解:
保留最大的
低秩矩阵
不过,标准 SVD 通常要求输入矩阵相对完整,而真实推荐矩阵往往有大量缺失项。实际系统一般会使用带观测掩码的矩阵分解、加权矩阵分解或交替最小二乘等方法,不能简单把所有缺失评分都当成真实的零分再直接做普通 SVD。
2.6 推荐系统中的矩阵分解方法对比
| 方法 | 在推荐系统中的主要角色 | 典型特点 |
|---|---|---|
| PCA | 用户/物品特征降维、去噪 | 无监督,提取主方向 |
| NMF | 非负潜在因子建模 | 因子非负,解释性较强 |
| QR | 训练过程中的最小二乘求解 | 数值求解工具,不直接定义推荐模型 |
| SVD | 低秩近似、经典协同过滤 | 用奇异值和奇异向量提取潜在结构 |
因此,“矩阵分解方法在推荐系统中的应用”是一个较宽的概念。判断时要区分:
- 直接学习用户-物品潜在因子的模型:如 SVD 形式的矩阵分解、NMF;
- 用于特征压缩和去噪的表示工具:如 PCA;
- 用于训练子问题求解的数值工具:如 QR。
这些方法的作用不同,但都可能出现在推荐系统的数据处理、模型建模或训练求解流程中。