开学第一天,班主任拿到一份名单,上面标着每个学生属于哪个学习小组。别的老师排座位只看个子高矮,这位班主任却想找一条“排座主线”:让同一个小组的同学挤在一起,不同小组之间拉开距离——这样课堂上讨论方便,小组之间又不互相干扰。这个朴素的想法,就是线性判别分析(LDA,Linear Discriminant Analysis)的雏形。 故事里的每个要素,恰好对应机器学习中的一个概念:学生是样本,“属于哪个小组”是样本标签,座位排列方向是投影方向,降维就是把高维数据沿着这条主线“拍扁”到低维空间。和只看方差、不管标签的主成分分析(PCA)不同,LDA 手里攥着标签,专门找“类内紧凑、类间分散”的方向。正因如此,它成了带标签高维数据降维的首选预处理工具:人脸识别、文本分类、生物特征识别里都有它的身影。虽然常被编入无监督降维的章节,但 LDA 骨子里是个有监督方法。 不过 LDA 有两条“脾气”要记牢:第一,它是线性方法,适合线性可分的场景;第二,它最多只能降到“类别数减一”维——三类数据最多降成二维。掌握了它,你就等于学会了“带着答案去降维”的智慧。

岗位关联

对 AI 从业者而言,掌握 LDA 意味着多了一把“有监督降维”的利器:既能做分类前的高质量预处理,又能直接当二分类器,是面试和工业实战中的高频考点。

目录
  1. 可视化演示
  2. LDA核心思想
  3. 散度矩阵
  4. 与PCA对比
  5. 求解过程
  6. 维度限制
  7. 场景应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

LDA投影:寻找最佳判别方向 LDA投影方向 wLDA目标:投影后类间距离最大,类内距离最小投影方向角度 θFisher判别准则:max J(w) = w^T Sb w / w^T Sw w最优解:w = Sw^(-1) * (μ1 - μ2) | 广义特...

LDA核心思想

开学第一天,班主任拿到一份名单,上面标着每个学生属于哪个学习小组。别的老师排座位只看个子高矮,这位班主任却想:能不能找到一条“排座主线”,让同一个小组的同学尽量挤在一起,不同小组之间尽量隔得远远的?这样上课讨论时,小组内部一转头就能碰头,小组之间又不会互相干扰。这个朴素的想法,正是线性判别分析(LDA)的起点:一套“带着标签排座位”的降维方法。

把场景翻译成机器学习语言:每个学生是一个样本,“属于哪个小组”是样本的标签(类别),教室里的过道方向是我们要找的投影方向 w。降维,就是沿着这条主线把高维数据“拍扁”到一个低维空间。LDA 和只看方差的主成分分析(PCA)最大的不同,是它手里有标签——它知道每个点属于哪一类,因此在找方向时,会专门惩罚“同组散开”、奖励“异组拉开”。

数学家 Fisher 把这个目标写成了一个比值:投影后类间距离与类内离散之比,记为 J(w)。我们的任务就是找到一个方向 w,使这个比值最大。比值越大,说明沿这个方向看,不同类别被分得越开、同一类别窝得越紧。这个“比值最大”的方向,就是 LDA 选出的第一条排座主线。

所以 LDA 的“核心思想”四个字可以浓缩成一句话:有标签的班主任,要找一条让同组同学抱团、让不同小组拉开距离的排座主线。后面的所有数学,都是在把这句大白话翻译成可计算的公式。

J(w)=wTSBwwTSWw\displaystyle J(w)=\frac{w^{T}S_{B}w}{w^{T}S_{W}w}
J(w) 就像排座位的“评分”——分子是不同小组之间的平均距离(越大越好),分母是小组内部的拥挤程度(越小越好),我们要找让这个分数最高的那条过道方向。
  1. w——投影方向向量我们要找的那条排座主线在原始空间里的指向,它是一个和特征维度一样长的向量。
    ww
  2. S_B——类间散度矩阵一个方阵,量化不同类别“中心”之间的离散程度,对应小组与小组的距离。
    SBS_{B}
  3. S_W——类内散度矩阵一个方阵,量化每个类别内部样本的离散程度,对应小组内部的拥挤程度。
    SWS_{W}
  4. w^T S_B w——投影后的类间距离把方向 w 代入后得到一个数,表示沿这条主线看过去,组间离得多远。
    wTSBww^{T}S_{B}w
  5. w^T S_W w——投影后的类内离散另一个数,表示沿这条主线看过去,组内成员散得多开。
    wTSWww^{T}S_{W}w
  6. J(w)——综合比分两者相除得到最终评分,LDA 的目标就是最大化它。
    J(w)J(w)

散度矩阵

既然要量化“紧凑”和“分散”,班主任得先拿出尺子。他的方法是:先给每个小组找一个“平均座位”(小组中心),再量每个同学离自己小组平均座位有多远——这些距离的平方和,就是“组内松散程度”;再量每个小组平均座位离全班平均座位有多远,乘上小组人数——这些距离的平方和,就是“组间分离程度”。

在数学里,这两把“尺子”被做成两个方阵,统称散度矩阵。散度矩阵不是单个数字,而是一个矩阵,它把每个维度两两之间的离散关系都记下来,这样投影到任意方向 w 时,都能通过 w^T S w 快速算出该方向上的离散量。名字里的“散度”,就是“散布的程度”。

类内散度矩阵 S_W 把每个样本与自家组中心的距离平方全部累加;类间散度矩阵 S_B 把每个组中心与全班中心的距离平方按人数加权累加。两者合起来就等于总散度矩阵 S_T,即全班座位相对整体中心的总体离散。公式写法如下:

有了这两把尺子,任何一条候选主线 w 的“比分” J(w) 都能立刻算出来。散度矩阵就是 LDA 的“量尺工具箱”,后面所有求解都建立在它们之上。

SW=∑k=1C∑x∈Ck(x−μk)(x−μk)T,SB=∑k=1CNk(μk−μ)(μk−μ)T\displaystyle S_{W}=\sum_{k=1}^{C}\sum_{x\in \mathcal{C}_{k}}(x-\mu_{k})(x-\mu_{k})^{T},\qquad S_{B}=\sum_{k=1}^{C}N_{k}(\mu_{k}-\mu)(\mu_{k}-\mu)^{T}
S_W 是“组内松散尺”:把每个样本与自家组中心的距离的平方累加;S_B 是“组间分离尺”:把每个组中心与全班中心的距离平方按人数加权累加。
  1. C——类别总数学习小组的个数,比如红蓝两组时 C=2。
    CC
  2. x——单个样本一个学生的座位坐标,是一个向量。
    xx
  3. μ_k——第 k 类的均值向量第 k 组同学的“平均座位”,也叫类中心。
    μk\mu_{k}
  4. μ——总体均值向量全班同学的“平均座位”。
    μ\mu
  5. N_k——第 k 类的样本数第 k 组有多少人,作为加权权重。
    NkN_{k}
  6. S_W 的累加逻辑对每一类,把每个样本减去类中心再乘自己的转置,最后求和,度量类内松散。
    ∑x∈Ck(x−μk)(x−μk)T\sum_{x\in \mathcal{C}_{k}}(x-\mu_{k})(x-\mu_{k})^{T}
  7. S_B 的累加逻辑对每一类,把类中心减总体中心的差距平方乘以人数,度量类间分离。
    Nk(μk−μ)(μk−μ)TN_{k}(\mu_{k}-\mu)(\mu_{k}-\mu)^{T}

与PCA对比

隔壁班的 PCA 老师没有名单,他排座位的唯一依据是“让全班同学的座位铺得最开”——用术语说就是投影后方差最大。他并不知道哪些人该坐在一起,所以排出来的座位虽然铺得开,却很可能是“红蓝两组混着坐”。LDA 班主任有名单,他排出来的座位可能铺得没那么开,但红蓝两组界限分明。

这个区别是本质性的:PCA 是无监督方法,只优化“全局方差”,目标是保留数据本身的分布结构;LDA 是有监督方法,优化“类间除以类内”,目标是让类别尽可能可分。前者适合无标签数据的压缩与可视化,后者适合带标签数据的分类预处理。两者都是降维,但“降给谁看”完全不同。

从公式上看,PCA 要最大化 w^T S_T w,其中 S_T 是总散度矩阵,等于类内散度加类间散度;而 LDA 最大化的是两者的比值,即“分离度”而非“展开度”:

所以选工具时记住:没标签、想压缩,用 PCA;有标签、想分类,优先试 LDA。一个是“铺得最开”,一个是“分得最清”——两张座次图一比,高下立判。

JPCA(w)=max⁡wwTSTw,ST=SW+SB\displaystyle J_{PCA}(w)=\max_{w}w^{T}S_{T}w,\quad S_{T}=S_{W}+S_{B}
PCA 只看总方差,不管标签;LDA 把总方差拆成“类内”和“类间”两部分,只看两者的比值——一个是“铺得最开”,一个是“分得最清”。
  1. S_T——总散度矩阵全班座位相对全体平均座位的总体离散,等于 S_W 加 S_B。
    ST=SW+SBS_{T}=S_{W}+S_{B}
  2. PCA 的目标找一个方向使投影后的总方差最大,并不区分组内和组间。
    max⁡wwTSTw\max_{w}w^{T}S_{T}w
  3. LDA 的目标对照找方向使类间与类内的比值最大,这是两者最核心的分水岭。
    J(w)=wTSBwwTSWwJ(w)=\frac{w^{T}S_{B}w}{w^{T}S_{W}w}

求解过程

班主任把“找主线”变成了一道可以交给计算机的数学题。他不需要真的拉着学生反复试坐,只需要四个步骤:先算各类和全班的平均座位,再组装两把散度尺子,然后解一个特征方程,最后按得分从高到低取前几条主线。

特征方程的核心是一个矩阵:S_W^{-1} S_B。可以把 S_W^{-1} 理解成“先把组内松散程度拉平(白化)”,再去看组间分离;两者相乘后,特征向量就是候选主线方向,特征值就是这条主线的得分。这一步是 LDA 与 PCA 在计算上的最大不同——PCA 只对 S_T 做分解,LDA 要对“白化后的 S_B”做分解。

特征方程的标准写法如下:

解题顺序是一套标准动作:均值 → 散度矩阵 → 特征分解 → 排序取前 d 个。班主任把这套步骤写成程序,一分钟就能排完全班座位;而 LDA 在工业界,也正是这样被当作“分类前的标准预处理工序”来用的。

SW−1SBw=λw\displaystyle S_{W}^{-1}S_{B}w=\lambda w
这个方程的意思是:沿着某个方向 w 走,经过“先白化再分离”的变换后,方向不变、只被放大 λ 倍。这样的 w 就是我们要的排座主线,λ 是它的分数。
  1. S_W^{-1}——类内散度的逆把各方向上的组内松散程度“归一化”,相当于先把不同方向的拥挤程度拉平。
    SW−1S_{W}^{-1}
  2. S_W^{-1} S_B——组合矩阵先按整体处理再度量组间分离的算子,LDA 的特征分解就作用在它上面。
    SW−1SBS_{W}^{-1}S_{B}
  3. λ——特征值该方向的分离得分,越大代表这条主线越能让类别分开。
    λ\lambda
  4. w——特征向量满足方程的方向,LDA 取前 d 个得分最高的 w 组成投影矩阵 W。
    ww
  5. 投影公式新数据 X 沿 W 投影得到降维后的 Y。
    Y=WTXY=W^{T}X

维度限制

排着排着,班主任发现一个规律:如果班里只有 C 个小组,那么他最多只能设计出 C-1 条“信息不重复”的排座主线。第三条、第四条主线看起来方向不同,其实都是前两条的线性组合,挤不出新的分组信息。

原因在于类间散度矩阵 S_B 的秩(有效独立方向的个数)最多是 C-1。直观理解:C 个小组中心相对总体均值的偏移向量,只有 C-1 个是线性无关的,所以组间信息最多撑起 C-1 个独立方向。这就是 LDA 著名的“维度上限”定理。

这个限制不是缺点,而是规律:分组信息说到底只存在于“组与组之间”,C 个组只有 C-1 对“相对关系”。所以做人脸识别时,如果身份类别有 40 个,LDA 最多降到 39 维;再多设维度也只是在重复信息。

rank(SB)≤C−1\displaystyle \mathrm{rank}(S_{B})\leq C-1
S_B 的秩不超过类别数减一。也就是说,三组数据用 LDA 最多降到二维,两组数据最多降到一维——降维维数不是随心所欲的。
  1. rank(S_B)——秩一个矩阵中线性无关方向的最大个数,可以理解为“真正互不重复的信息维度数”。
    rank(SB)\mathrm{rank}(S_{B})
  2. C-1——维度上限类别数减一是秩的上界,因此 LDA 最多产出 C-1 个有效投影方向。
    C−1C-1
  3. 二分类特例两类数据 C=2,LDA 只能降到一维,此时投影后直接设一个阈值就完成了二分类。
    C=2⇒dmax⁡=1C=2\Rightarrow d_{\max}=1

场景应用

班主任的排座法很快传遍全校,变成了各种场景的通用工具。人脸识别:把一张高像素照片当样本,身份当标签,先用 LDA 把照片降到几十维,再在低维空间里做比对;文本分类:把一篇文章表示成高维词频向量,用 LDA 投影到“主题轴”上,再交给分类器。生物特征识别、声纹验证等带标签的高维场景,套路都类似。

LDA 还有一个特殊用法——直接当二分类器。两类数据降到一维后,各类的投影值会在数轴上形成两个“山包”,在两个山包之间取一个阈值,新样本投影后落在哪边就判为哪类。Fisher 当年提出 LDA 时,本来就是用它做分类的,只是后来大家更常用它做降维预处理。

实际工程中,LDA 常作为“分类预处理”的第一步:先有监督降维,再接 SVM、KNN 等分类器。数据从上千维压到 C-1 维,既去掉了噪声,又保留了类别可分性,训练速度与泛化性能都明显提升。从开学第一天的一念之想,到全校通用的标准算法,排座位的智慧最终沉淀为一行行代码——当标签在手,“分得清”往往比“铺得开”更有价值。

y=sign(wTx−b)\displaystyle y=\mathrm{sign}(w^{T}x-b)
把新样本 x 投影到一维得到 w^T x,再与阈值 b 比较:大于取正类,小于取负类。这就是 LDA 分类器的判决规则。
  1. w^T x——投影值新同学沿 LDA 主线投影后的位置。
    wTxw^{T}x
  2. b——阈值两个类中心投影值的中间点,作为分界线。
    bb
  3. sign——符号判决投影值减阈值后取正负号,决定样本属于哪一类。
    sign(⋅)\mathrm{sign}(\cdot)

AI 应用场景

人脸识别预处理

阶段:特征提取与降维预处理

解决的问题:传统人脸图像像素维度上万,直接比对速度慢且易受光照、表情噪声干扰。LDA 利用身份标签把图像投影到低维判别空间,压缩维度的同时强化类间差异,让同一个人的不同照片在投影后更近、不同人的照片更远。

具体案例:某考勤系统的 500 名员工每人 10 张照片,用 LDA 把 4096 维像素特征降到 499 维,再对打卡照片做最近邻比对,识别准确率从 82% 提升到 96%,单次比对耗时下降约 70%。

文本主题分类

阶段:文本向量化后的有监督降维

解决的问题:文本 TF-IDF 向量动辄数万维,直接训练分类器容易过拟合且计算开销大。LDA 利用文章的主题标签,把高维词向量投影到最能区分主题的低维判别空间。

具体案例:某新闻 App 将稿件分词映射成约 3 万维向量,用 LDA 把 10 个主题类别降到 9 维,再喂给 SVM 分类器。上线后线上分类延迟降低 60%,主题准确率提升 5 个百分点。

信贷违约二分类

阶段:分类建模与风控决策

解决的问题:当业务只有两类标签(违约/不违约)时,LDA 降维后恰好得到一维判别分数,可以用“投影值 + 阈值”直接判决,模型简单、可解释性强,适合风控场景的合规要求。

具体案例:某消费金融风控团队用 LDA 对 20 个用户特征做判别投影,输出一维信用分数并设阈值 0.6,新用户分数低于阈值即触发人工审核。该方案 KS 值达 0.31,上线后坏账率下降 12%。

Python 演示

python54 行
import numpy as np  class LDA:    def __init__(self, n_components=1):        self.n_components = n_components        self.W = None        self.mean_all = None     def fit(self, X, y):        classes = np.unique(y)        d = X.shape[1]        mean_all = X.mean(axis=0)        Sw = np.zeros((d, d))        Sb = np.zeros((d, d))        for c in classes:            Xc = X[y == c]            mu_c = Xc.mean(axis=0)            Sw = Sw + (Xc - mu_c).T @ (Xc - mu_c)            n_c = Xc.shape[0]            diff = (mu_c - mean_all).reshape(-1, 1)            Sb = Sb + n_c * diff @ diff.T        eigvals, eigvecs = np.linalg.eig(np.linalg.pinv(Sw) @ Sb)        eigvals = np.real(eigvals)        eigvecs = np.real(eigvecs)        order = np.argsort(eigvals)[::-1][:self.n_components]        self.W = eigvecs[:, order]        self.mean_all = mean_all        return self     def transform(self, X):        return X @ self.W     def fit_transform(self, X, y):        return self.fit(X, y).transform(X)  if __name__ == "__main__":    from sklearn.datasets import load_iris    from sklearn.model_selection import train_test_split    from sklearn.neighbors import KNeighborsClassifier     data = load_iris()    X, y = data.data, data.target    X_train, X_test, y_train, y_test = train_test_split(        X, y, test_size=0.3, random_state=42    )    lda = LDA(n_components=2)    X_train_lda = lda.fit_transform(X_train, y_train)    X_test_lda = lda.transform(X_test)    knn = KNeighborsClassifier(n_neighbors=3)    knn.fit(X_train_lda, y_train)    acc = knn.score(X_test_lda, y_test)    print("LDA down-project acc: {:.4f}".format(acc))
目的:用 NumPy 从零实现 LDA,在鸢尾花数据集上用类别标签把 4 维特征降到 2 维,再用 KNN 验证降维后的分类效果——跑起来能看到一维的“判别分数”变成一条清晰的分类直线。
  1. classes = np.unique(y)拿到所有类别标签,相当于班主任手中的分组名单。
  2. Sw = Sw + (Xc - mu_c).T @ (Xc - mu_c)累加类内散度矩阵,度量组内松散程度。
  3. Sb = Sb + n_c * diff @ diff.T累加类间散度矩阵,度量组间分离程度。
  4. eigvals, eigvecs = np.linalg.eig(np.linalg.pinv(Sw) @ Sb)对 S_W^{-1} S_B 做特征分解,解出候选主线与得分。
  5. order = np.argsort(eigvals)[::-1][:self.n_components]按特征值从大到小排序,取前 d 个最优方向。
  6. self.W = eigvecs[:, order]保存投影矩阵,这就是 LDA 选出的“排座主线”。
  7. return X @ self.W把数据沿主线投影,完成有监督降维。
  8. acc = knn.score(X_test_lda, y_test)用 KNN 检验降维后的数据是否依然可分。

常见误区

误区“LDA 和 PCA 不都是降维吗?应该差不多吧,都不需要标签信息。我一直把 LDA 当成 PCA 的另一种叫法。”

正解两者有本质区别。PCA 是无监督的,只看全局方差,目标是让投影后数据“铺得最开”,不需要任何标签;LDA 是有监督的,必须借助类别标签构造类间散度矩阵,目标是让投影后“类间远、类内紧”。比喻:PCA 是没名单的老师按身高排座,LDA 是有名单的老师按小组排座——有没有名单(标签),决定了完全不同的排法。

为何常见:很多教程把 PCA 和 LDA 放在同一章对比讲解,名字又都是三个字母,初学者容易把它们当成同族方法,忽略了“是否有标签”这条分界线。

误区“降维嘛,我想降到几维就降到几维。LDA 应该和 PCA 一样,高维数据随便压。”

正解LDA 有硬性上限——最多降到“类别数减一”维。因为类间散度矩阵 S_B 的秩不超过 C-1,特征分解后最多只有 C-1 个非零特征值对应的有效方向。比喻:C 个小组的相对位置,最多只能撑起 C-1 条互不重复的排座主线,多出来的都是前几条的“混搭”,没有新信息。

为何常见:习惯了 PCA 可以降到任意维度(由特征数或样本数决定),遇到 LDA 的 C-1 上限时容易忽视,尤其是二分类只能降成一维,常让人意外。

误区“LDA 用了标签信息,肯定全面碾压 PCA,只要数据有标签就无脑上 LDA。”

正解LDA 是线性方法,如果数据是线性不可分的(如环形分布),LDA 可能找不到好方向;高维小样本时类内散度矩阵 S_W 可能奇异,直接求逆会数值不稳定,需要加正则项。另外类别不均衡时 S_B 的权重也会偏斜。比喻:有名单的老师也不是万能的——如果小组内部本身鱼龙混杂、形状扭曲,按组排座依然会乱。

为何常见:教材里 LDA 的配图都是理想的两团高斯分布,给人“有标签必赢”的错觉,忽略了现实数据的复杂性和数值问题。

误区“LDA 就是降维工具,分类是 SVM、KNN 的事,跟 LDA 没关系。”

正解LDA 不仅能降维,还能直接当分类器。两类数据降到一维后,各类投影值在数轴上形成两个分布,取中间点做阈值即可判定新样本类别;Fisher 最初提出这个方法就是为了解决二分类问题。比喻:座位排好后,新同学看自己站在数轴的哪一边,就进哪个组——排座和分班本来就是一体的。

为何常见:现代教程习惯把 LDA 放在“降维”章节里讲,淡化了它的分类本质;再加上“判别分析”这个名词听起来像是纯降维,导致初学者以为它只能做预处理。

面试题

Q1. 关于 LDA 的监督性,下列说法正确的是?

单选题 · easy

  • A.LDA 是无监督降维方法
  • B.LDA 不需要任何样本标签
  • C.LDA 借助类别标签降维← 正确答案
  • D.LDA 与标签信息毫无关联

答案:C。LDA 是典型的有监督降维方法,必须借助类别标签构造类间散度矩阵。A、D 说它与标签无关显然不对;B 说不需要标签也不对。就像班主任必须有分组名单,才能排出“同组靠拢、异组远离”的座位。

Q2. LDA 的核心优化目标是什么?

单选题 · easy

  • A.最大化投影后方差总量
  • B.最大化类间与类内比值← 正确答案
  • C.最小化样本之间的距离
  • D.最小化类别数量大小

答案:B。LDA 的目标函数是类间散度与类内散度的比值 J(w),最大化这个比值才能让类别分开。A 是 PCA 的目标;C、D 与 LDA 的目标无关。比喻:评分 = 组间距离 ÷ 组内拥挤,分数越高,座位排法越好。

Q3. 三类样本做 LDA,最多能降到几维?

单选题 · mid

  • A.只能降到一维空间
  • B.最多能降到三维空间
  • C.最多能降到二维空间← 正确答案
  • D.维度数量不受任何限制

答案:C。LDA 最多降到 C-1 维,三类样本即 2 维,因为类间散度矩阵的秩不超过 C-1。A 是二类时的特例;B 超过了上限;D 与定理矛盾。三组同学的相对位置,撑死只能撑起两条互不重复的主线。

Q4. 关于类内散度矩阵 S_W,下列说法正确的是?

单选题 · mid

  • A.衡量不同类别中心之间距离
  • B.衡量同类别内部样本离散← 正确答案
  • C.衡量全体样本总的方差
  • D.衡量标签分布是否均匀

答案:B。S_W 度量类内散度,即同类样本内部的离散程度。A 说的是类间散度 S_B;C 说的是总散度 S_T;D 与散度无关。比喻:S_W 是小组内部的“拥挤尺”,越紧凑越好。

Q5. LDA 的投影方向 w 来自对哪个矩阵做特征分解?

单选题 · mid

  • A.对类内散度矩阵直接分解
  • B.对 S_W^{-1}S_B 做特征分解← 正确答案
  • C.对 S_B^{-1}S_W 求特征向量
  • D.对总散度矩阵 S_T 分解

答案:B。LDA 的投影方向来自 S_W^{-1}S_B 的特征分解,特征值越大方向越优。A、D 都没出现逆矩阵,方向不对;C 把两者的顺序颠倒了。比喻:要先“拉平组内拥挤”,再量“组间距离”。

Q6. 与 PCA 相比,LDA 降维通常更适合哪种任务?

单选题 · hard

  • A.无标签数据的可视化探索
  • B.追求最小重构误差的任务
  • C.带标签数据分类前预处理← 正确答案
  • D.数据压缩且不关心类别

答案:C。LDA 是为分类服务的,带标签数据分类前预处理是它的主场。A 是无标签可视化,PCA 更合适;B 是 PCA 的目标;D 不关心类别,与 LDA 背道而驰。比喻:有名单的班主任才排得出“分得清”的座位。

Q7. 两类数据用 LDA 降到一维后,如何进行二分类?

单选题 · mid

  • A.比较样本投影与判定阈值← 正确答案
  • B.重新计算一次主成分方向
  • C.对原始数据做聚类分析
  • D.直接取样本的原始均值

答案:A。两类 LDA 降到一维后,各类投影形成两个分布,取中间阈值即可判定类别。B 是 PCA 的操作;C 是无监督方法;D 没有用到投影信息。比喻:新同学看自己站在数轴的哪一边,就进哪个组。

Q8. LDA 的限制与注意点包括哪些?

多选题 · hard

  • A.最多降到类别数减一维← 正确答案
  • B.线性假设可能不适用← 正确答案
  • C.高维小样本时 S_W 可能奇异← 正确答案
  • D.完全不受样本数量限制

答案:ABC。LDA 的维度上限是 C-1,线性假设使其对非线性数据无效,高维小样本时 S_W 可能奇异导致求逆不稳定,这些都需要注意。D 说完全不受样本量限制是错的。比喻:老师手里的名单再全,也变不出超出 C-1 条的新主线。

Q9. 下列属于 LDA 实际应用场景的有?

多选题 · easy

  • A.人脸识别前的降维预处理← 正确答案
  • B.新闻文本主题分类降维← 正确答案
  • C.类别标签的二分类判别← 正确答案
  • D.密码学中加密密钥生成

答案:ABC。人脸识别、文本分类、二分类都是 LDA 的典型应用场景;D 是密码学内容,与 LDA 无关。比喻:排座位的智慧用在了“认脸”“读文章”“判违约”这些正道上,而不是用在锁大门上。

Q10. 为什么 LDA 降维维度存在上限?

多选题 · extreme

  • A.类间散度矩阵的秩不会超过类别数减一← 正确答案
  • B.因为投影方向必须全部相互正交约束
  • C.类别中心最多张成类别数减一维子空间← 正确答案
  • D.因为特征分解得到的特征值全部为负数

答案:AC。类间散度矩阵的秩不超过 C-1,因为 C 个类中心相对总体均值的偏移向量只有 C-1 个线性无关,所以 A、C 正确。B 错在 LDA 的投影方向在原始空间并不要求正交;D 明显错误,特征值可以是正数或零。比喻:C 个组之间的相对位置,最多撑起 C-1 条不重复的主线。