线性判别分析 (LDA) 在机器学习中的应用

2025年06月20日 | 阅读 6 分钟

线性判别分析 (LDA) 是机器学习中常用的降维技术之一,用于解决多于两个类别的分类问题。它也称为正态判别分析 (NDA) 或判别函数分析 (DFA)。

它可以用于将高维空间中的特征投影到低维空间,以减少资源和维度成本。在本主题“机器学习中的线性判别分析 (LDA)”中,我们将讨论 LDA 算法在分类预测建模问题中的应用、逻辑回归的局限性、线性判别分析模型的表示、如何使用 LDA 进行预测、如何准备 LDA 的数据、LDA 的扩展以及更多内容。那么,让我们开始对机器学习中的线性判别分析 (LDA) 进行快速介绍。

注意:在开始此主题之前,建议学习逻辑回归算法的基础知识以及对机器学习中分类问题的基本理解,作为先决条件。

什么是线性判别分析 (LDA)?

尽管逻辑回归算法仅限于二分类,但线性判别分析适用于多于两个类别的分类问题。

线性判别分析是机器学习中有监督分类问题中最流行的降维技术之一。它也被认为是 ML 中建模差异和模式分类应用中的预处理步骤。

当需要有效地分离两个或多个具有多个特征的类别时,线性判别分析模型被认为是解决此类分类问题最常用的技术。例如,如果我们有两个具有多个特征的类别,并且需要有效地分离它们。当使用单个特征对它们进行分类时,可能会出现重叠。

Linear Discriminant Analysis (LDA) in Machine Learning

为了克服分类过程中的重叠问题,我们必须定期增加特征的数量。

示例

假设我们有两个不同类别的数据点,它们位于一个二维平面上,如下图所示:

Linear Discriminant Analysis (LDA) in Machine Learning

然而,在二维平面上绘制一条直线来有效分离这些数据点是不可能的。但使用线性判别分析,我们可以将二维平面降维到一维平面。使用这种技术,我们还可以最大化多个类别之间的可分性。

线性判别分析 (LDA) 如何工作?

线性判别分析用作机器学习中的降维技术,使用它可以轻松地将二维和三维图形转换为一维平面。

让我们考虑一个例子,其中我们在具有 X-Y 轴的二维平面上有两个类别,我们需要有效地对它们进行分类。正如我们在上面的示例中已经看到的,LDA 使我们能够绘制一条可以完全分离两个类别数据点的直线。在这里,LDA 使用 X-Y 轴创建一条新轴,通过一条直线分离它们并将数据投影到新轴上。

因此,我们可以最大化这些类别之间的分离度并将二维平面减小到一维。

Linear Discriminant Analysis (LDA) in Machine Learning

为了创建新轴,线性判别分析使用以下标准:

  • 它最大化两个类别均值之间的距离。
  • 它最小化单个类别内的方差。

使用上述两个条件,LDA 生成一个新轴,以便最大化两个类别均值之间的距离并最小化每个类别内的方差。

换句话说,我们可以说新轴将增加两个类别数据点之间的分离度,并将它们绘制到新轴上。

为什么选择 LDA?

  • 逻辑回归是最流行的分类算法之一,在二分类问题上表现良好,但在具有良好分离的类别的多分类问题上表现不佳。同时,LDA 可以有效地处理这些问题。
  • LDA 还可以用于数据预处理以减少特征数量,就像 PCA 一样,PCA 可以显著降低计算成本。
  • LDA 也用于人脸检测算法。在 Fisherfaces 中,LDA 用于从不同人脸中提取有用数据。与 eigenfaces 结合使用,可产生有效的结果。

线性判别分析 (LDA) 的缺点

尽管 LDA 特别用于解决两个或多个类别(逻辑回归在机器学习中无法解决)的有监督分类问题。但 LDA 在某些情况下也会失败,例如当分布的均值共享时。在这种情况下,LDA 无法创建使两个类别线性可分的新的轴。

为了克服这些问题,我们在机器学习中使用非线性判别分析

线性判别分析 (LDA) 的扩展

线性判别分析是解决机器学习中分类问题最简单有效的方法之一。它有很多扩展和变体,如下所示:

  1. 二次判别分析 (QDA):对于多个输入变量,每个类别部署自己的方差估计。
  2. 灵活判别分析 (FDA):当使用非线性输入组(如样条)时使用它。
  3. 灵活判别分析 (FDA):它在方差(实际上是协方差)的估计中使用正则化,从而缓和不同变量对 LDA 的影响。

LDA 的实际应用

以下是线性判别分析的一些常见实际应用:

  • 人脸识别
    人脸识别是计算机视觉中最流行的应用,其中每个人脸都表示为大量像素值的组合。在这种情况下,LDA 用于在进入分类过程之前将特征数量最小化到可管理的数量。它生成一个新的模板,其中每个维度由像素值的线性组合组成。如果使用 Fisher 线性判别生成线性组合,则称为 Fisher 脸。
  • 医疗
    在医疗领域,LDA 在根据患者健康和正在进行的医疗治疗的各种参数对患者疾病进行分类方面具有重要应用。基于这些参数,它将疾病分类为轻度、中度或重度。这种分类有助于医生加快或减缓治疗的步伐。
  • 客户识别
    在客户识别方面,LDA 目前正在被应用。这意味着借助 LDA,我们可以轻松识别和选择能够区分可能在购物中心购买特定产品的客户群体的特征。当我们想识别大多数在购物中心购买产品的客户群体时,这可能很有帮助。
  • 用于预测
    LDA 还可以用于进行预测,从而用于决策。例如,“您会购买此产品吗?”将给出购买或不购买的两种可能类别中的一种预测结果。
  • 在学习中
    如今,机器人正在接受学习和对话的训练,以模拟人类工作,这也可以被视为一个分类问题。在这种情况下,LDA 根据不同的参数(包括音高、频率、声音、音调等)构建相似的组。

线性判别分析与 PCA 的区别

以下是 LDA 和 PCA 的一些基本区别:

  • PCA 是一种无监督算法,它不关心类别和标签,只旨在找到主成分以最大化给定数据集中的方差。同时,LDA 是一种有监督算法,旨在找到线性判别来表示最大化数据不同类别之间分离的轴。
  • 与 PCA 相比,LDA 更适合多类别分类任务。但是,对于相对较小的样本量,PCA 被认为是表现良好的。
  • LDA 和 PCA 都用作降维技术,其中 LDA 通常跟在 PCA 之后。

如何准备 LDA 数据

以下是一些在准备数据以构建 LDA 模型时应始终考虑的建议:

  • 分类问题:LDA 主要应用于分类问题,用于对分类输出变量进行分类。它适用于二元和多分类问题。
  • 高斯分布:标准的 LDA 模型应用输入变量的高斯分布。应审查每个属性的单变量分布,并将其转换为更像高斯分布的分布。例如,对指数分布使用 log 和 root,对偏斜分布使用 Box-Cox。
  • 删除异常值:最好首先从数据中删除异常值,因为这些异常值可能会扭曲 LDA 分离类别的基本统计量,例如均值和标准差。
  • 方差相同:由于 LDA 始终假设所有输入变量具有相同的方差,因此在实现 LDA 模型之前,首先标准化数据总是一种更好的方法。通过这种方式,均值将为 0,标准差为 1。