一、线性判别分析的核心原理与数学基础
线性判别分析(Linear Discriminant Analysis, LDA)由Fisher于1936年提出,其核心思想是通过线性投影最大化类间距离、最小化类内距离。假设数据包含两类样本,目标是将样本投影到一维空间(直线)后,两类投影点的均值差异最大化,同时类内方差最小化。
1.1 数学目标函数推导
设两类样本的均值向量分别为$\mu1$和$\mu_2$,投影后的均值分别为$\tilde{\mu}_1 = w^T\mu_1$和$\tilde{\mu}_2 = w^T\mu_2$。类内散度矩阵$S_w$和类间散度矩阵$S_b$定义为:
{x \in C1}(x-\mu_1)(x-\mu_1)^T + \sum{x \in C_2}(x-\mu_2)(x-\mu_2)^T
LDA的目标是最大化类间散度与类内散度的比值,即优化问题:
通过拉格朗日乘数法求解,可得最优投影方向$w$为$S_w^{-1}(\mu_1 - \mu_2)$。
1.2 多类扩展与广义特征值问题
对于$K$类问题,需找到$K-1$个投影方向。此时目标函数扩展为:
其中$W$为投影矩阵。通过求解广义特征值问题$S_b W = \lambda S_w W$,取前$K-1$个最大特征值对应的特征向量构成$W$。
二、核心假设与适用场景分析
2.1 数据分布假设
LDA隐含三类关键假设:
- 正态分布假设:各类数据服从多元正态分布,且协方差矩阵相同。若假设不成立,分类性能可能下降。
- 线性可分性:数据在原始空间或投影后空间需存在线性决策边界。对于非线性问题,需结合核方法或深度学习。
- 连续自变量:自变量需为连续值,类别型变量需通过独热编码转换。
2.2 与相关方法的对比
| 方法 | 核心目标 | 自变量类型 | 因变量类型 | 典型应用场景 |
|---|---|---|---|---|
| LDA | 分类与降维 | 连续 | 类别 | 人脸识别、财务破产预测 |
| PCA | 最大方差保留 | 连续 | 无监督 | 图像压缩、噪声去除 |
| 逻辑回归 | 概率建模与分类 | 连续 | 类别 | 信用评分、疾病诊断 |
| 方差分析 | 组间差异显著性检验 | 类别 | 连续 | 实验设计、药物效果评估 |
三、算法实现与优化技巧
3.1 基础实现步骤
- 数据预处理:标准化数据至零均值、单位方差。
-
计算散度矩阵:
def compute_scatter_matrices(X, y):n_classes = len(np.unique(y))S_w = np.zeros((X.shape[1], X.shape[1]))S_b = np.zeros((X.shape[1], X.shape[1]))mu_overall = np.mean(X, axis=0)for c in range(n_classes):X_c = X[y == c]mu_c = np.mean(X_c, axis=0)S_w += (X_c - mu_c).T @ (X_c - mu_c)n_c = X_c.shape[0]S_b += n_c * (mu_c - mu_overall).reshape(-1, 1) @ (mu_c - mu_overall).reshape(1, -1)return S_w, S_b
- 求解广义特征值问题:
eigenvalues, eigenvectors = np.linalg.eig(np.linalg.inv(S_w) @ S_b)w = eigenvectors[:, np.argsort(eigenvalues)[::-1][:K-1]] # 取前K-1个特征向量
3.2 数值稳定性优化
- 正则化处理:当$S_w$接近奇异时,添加微小正则项$\gamma I$:
$$
S_w’ = S_w + \gamma I
$$ - 增量学习:对于流式数据,可采用增量LDA算法,通过迭代更新散度矩阵避免全量计算。
四、典型应用场景与实践案例
4.1 人脸识别中的Fisher脸
LDA在人脸识别中通过投影消除光照、表情等冗余信息。经典流程包括:
- 使用PCA降维至$d’$维(保留95%方差)。
- 在PCA空间应用LDA,进一步降维至$C-1$维($C$为类别数)。
- 计算测试样本与训练样本的马氏距离进行分类。
4.2 财务破产预测模型
某金融机构利用LDA构建破产预测模型,关键步骤:
- 收集企业财务指标(流动比率、资产负债率等)作为自变量。
- 标签为二分类(破产/非破产)。
- 通过LDA投影后,选取阈值实现分类,AUC达到0.89。
4.3 生物医学分类诊断
在癌症亚型分类中,LDA结合基因表达数据实现:
- 对高维基因数据应用LDA降维。
- 在低维空间使用KNN或SVM分类。
- 实验表明,LDA降维后分类准确率较PCA提升12%。
五、局限性与发展方向
5.1 现有局限性
- 非线性问题:对复杂数据分布建模能力有限。
- 类别不平衡:少数类样本可能被忽略。
- 高维数据:当特征数远大于样本数时,$S_w$不可逆。
5.2 改进方向
- 核LDA:通过核函数映射至高维空间处理非线性问题。
- 正则化LDA:引入L1/L2正则项防止过拟合。
- 深度判别分析:结合神经网络自动学习投影方向。
结语
线性判别分析凭借其坚实的数学基础和高效的计算特性,在分类与降维领域占据重要地位。尽管存在局限性,但通过与现代技术的结合(如核方法、深度学习),其应用范围持续扩展。开发者可根据具体场景选择LDA或其变体,平衡模型复杂度与性能需求。