Math-03.线性代数-04.特征值与特征向量

本页讲解特征分解(eigendecomposition):对称矩阵如何用「沿特征方向缩放」来理解——PCA 与协方差分析的核心。

段末注释特征值(eigenvalue)$\lambda$ 与特征向量(eigenvector)$\mathbf{v}$ 满足 $A\mathbf{v}=\lambda\mathbf{v}$;$\mathbf{v}$ 经 $A$ 变换后方向不变,仅长度缩放 $\lambda$ 倍。

系列入口00.系列规划 | 前置:03 线性变换与秩


1. 定义与直观(D1–D2)

图 1 特征方向

对方阵 $A \in \mathbb{R}^{n \times n}$,若存在非零 $\mathbf{v}$ 与标量 $\lambda$ 使

$$
A\mathbf{v} = \lambda \mathbf{v}
$$

则 $\lambda$ 为特征值,$\mathbf{v}$ 为特征向量

几何:线性变换 $A$ 在特征方向上只是拉伸/压缩($\lambda>0$ 同向,$\lambda<0$ 反向),不「旋转」该方向。


2. 对称矩阵的谱定理(D3)

图 2 谱分解

若 $A = A^\top$(实对称),则:

  1. 特征值 $\lambda_i \in \mathbb{R}$
  2. 不同特征值对应的特征向量正交
  3. 存在正交矩阵 $Q$ 与对角阵 $\Lambda = \mathrm{diag}(\lambda_1,\ldots,\lambda_n)$:

$$
A = Q \Lambda Q^\top = \sum_{i=1}^n \lambda_i \mathbf{q}_i \mathbf{q}_i^\top
$$

协方差矩阵 $\Sigma$、相关矩阵 $R$、Hessian(二阶导)均为对称矩阵——谱分解是 PCA、曲率分析的基础。


3. 与秩、迹、行列式(D3)

与特征值关系
$\mathrm{rank}(A)$ 非零特征值个数(对称阵)
$\mathrm{tr}(A) = \sum_i A_{ii}$ $\sum_i \lambda_i$
$\det(A)$ $\prod_i \lambda_i$

最大特征值 $\lambda_1$ 常对应数据最大方差方向(PCA 第一主成分)。


4. 协方差与 PCA 数学(D6–D7)

图 3 PCA 与特征值

数据中心化后样本矩阵 $X_c \in \mathbb{R}^{n \times d}$,协方差

$$
\Sigma = \frac{1}{n-1} X_c^\top X_c
$$

对 $\Sigma$ 做特征分解 $\Sigma = Q \Lambda Q^\top$:

  • 第 $k$ 主成分方向:$\mathbf{q}_k$(第 $k$ 大特征值对应特征向量)
  • 投影:$Z = X_c Q_K$(保留前 $K$ 列)
  • 解释方差比:$\lambda_k / \sum_j \lambda_j$

Math-02/05 相关矩阵Math-00/30 多元正态 衔接;实践见 10 PCA专篇


5. 非对称矩阵与一般特征分解(D3)

一般方阵 $A$ 未必对称,特征值可为复数;仍可能有 $A = V \Lambda V^{-1}$(可对角化时)。马尔可夫链转移矩阵、图拉普拉斯谱聚类会用到非对称谱;DL 中更常见的是对称的 $\Sigma$、$H$ 或直接用 SVD(更稳定)。


6. 局限与数值注意(D8)

图 4 局限

问题 说明
$n \ll d$ 时 $\Sigma$ 秩 $\le n-1$ 最多 $n-1$ 个非零特征值
用 $XX^\top$ vs $X^\top X$ 大 $d$ 时用前者 trick 求 PCA
特征值接近 方向不稳定(重根)
非对称强行当对称 公式不适用

7. NumPy 示例(D12)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np

# 协方差 → 特征分解
X = np.random.randn(200, 10)
Xc = X - X.mean(axis=0)
Sigma = np.cov(Xc, rowvar=False) # (10,10)

eigvals, eigvecs = np.linalg.eigh(Sigma) # 对称阵用 eigh
idx = np.argsort(eigvals)[::-1]
eigvals, eigvecs = eigvals[idx], eigvecs[:, idx]

K = 3
W = eigvecs[:, :K] # 投影矩阵
Z = Xc @ W # (200, 3)
explained = eigvals[:K] / eigvals.sum()
print("解释方差比:", explained)

np.linalg.eigheig 更快更稳(专用于对称/Hermitian)。


8. 小结

对称矩阵的给出主方向与方差分配——PCA 的本质。任意矩阵的稳健分解见 05 SVD

系列导航03 秩 | 10 PCA

-------------本文结束感谢您的阅读-------------