线性判别分析 (Linear Discriminant Analysis, LDA)

线性判别分析 (Linear Discriminant Analysis, LDA)

通俗易懂算法

线性判别分析(Linear Discriminant Analysis,LDA)是一种用于分类和降维的技术。其主要目的是找到一个线性变换,将数据投影到一个低维空间,使得在这个新空间中,不同类别的数据能够更好地分离。

线性判别分析的核心思想

LDA的基本思路是最大化类间方差(between-class variance)与类内方差(within-class variance)的比率。通过这个过程,LDA试图找到一个最佳的投影方向,使得投影后的数据点在同一类别内尽可能接近,而不同类别的中心点尽可能分开。

核心步骤

  1. 计算均值向量

    • 对于每个类别( c ),计算类别的均值向量:
      m c = 1 N c ∑ x i ∈ D c x i \mathbf{m}_c = \frac{1}{N_c} \sum_{\mathbf{x}_i \in \mathcal{D}_c} \mathbf{x}_i mc=Nc1xiDcxi
      其中( N_c )是类别( c )中数据点的数量,( \mathcal{D}_c )是类别( c )的数据集。
  2. 计算类内散布矩阵(( \mathbf{S}_W )):

    • 类内散布矩阵反映了同一类别内数据点的离散程度:
      S W = ∑ c = 1 C ∑ x i ∈ D c ( x i − m c ) ( x i − m c ) T \mathbf{S}_W = \sum_{c=1}^{C} \sum_{\mathbf{x}_i \in \mathcal{D}_c} (\mathbf{x}_i - \mathbf{m}_c)(\mathbf{x}_i - \mathbf{m}_c)^T SW=c=1CxiDc(ximc)(ximc)T
  3. 计算类间散布矩阵(( \mathbf{S}_B )):

    • 类间散布矩阵量化了不同类别的均值向量的离散情况:
      S B = ∑ c = 1 C N c ( m c − m ) ( m c − m ) T \mathbf{S}_B = \sum_{c=1}^{C} N_c (\mathbf{m}_c - \mathbf{m})(\mathbf{m}_c - \mathbf{m})^T SB=c=1CNc(mcm)(mcm)T
      其中( \mathbf{m} )是所有样本的全局均值向量。
  4. 求解特征值和特征向量

    • 通过求解如下矩阵特征值问题,找到最佳投影方向:
      S W − 1 S B w = λ w \mathbf{S}_W^{-1} \mathbf{S}_B \mathbf{w} = \lambda \mathbf{w} SW1SBw=λw
      这里( \mathbf{w} )是特征向量,( \lambda )是对应的特征值。
  5. 投影数据

    • 最终,我们选择最大的特征值对应的特征向量作为投影矩阵,将数据映射到新空间:
      y = W T x \mathbf{y} = \mathbf{W}^T \mathbf{x} y=WTx
      其中( \mathbf{W} )包含我们选择的特征向量。

应用

  1. 分类:LDA可以作为分类的步骤,将输入数据投影到低维空间后,使用简单的分类器(如线性分类器)进行预测。
  2. 降维:可以将高维数据降为2维或3维,以便进行可视化分析。

总结

LDA的目标是投影数据,使得同一类别的样本在投影后尽可能接近,而不同类别的样本尽可能分开。它通过分析数据的类内和类间散布来实现这一目标,是一种有效的线性分类和降维工具。

底层原理

线性判别分析(Linear Discriminant Analysis, LDA)是一种用于模式分类和特征提取的线性算法。它的主要目标是找到一个投影方向,使得投影后样本集的类间方差最大化,类内方差最小化,从而提高分类效果。底层数学原理可以从以下几个方面进行讲解:

1. 问题描述

给定一个训练数据集,样本分为 K K K类,其中第 k k k类有 n k n_k nk个样本。每个样本是一个 d d d维向量。设第 k k k类的样本集合为 X k X_k Xk

LDA的目标是找到一个投影矩阵 W \mathbf{W} W,将 d d d维特征空间转到低维特征空间(一般为 K − 1 K-1 K1维),使得投影后的类之间尽可能可分。

2. 类内散度矩阵(Within-class scatter matrix)

类内散度矩阵度量了同一类样本的散布。对第 k k k类,它可以表示为:

S k = ∑ x i ∈ X k ( x i − μ k ) ( x i − μ k ) T \mathbf{S}_k = \sum_{x_i \in X_k} (x_i - \mu_k)(x_i - \mu_k)^T Sk=xiXk(xiμk)(xiμk)T

其中, μ k \mu_k μk是第 k k k类样本的均值: μ k = 1 n k ∑ x i ∈ X k x i \mu_k = \frac{1}{n_k} \sum_{x_i \in X_k} x_i μk=nk1xiXkxi

整个数据集的类内散度矩阵为:

S W = ∑ k = 1 K S k \mathbf{S}_W = \sum_{k=1}^K \mathbf{S}_k SW=k=1KSk

3. 类间散度矩阵(Between-class scatter matrix)

类间散度矩阵度量了不同类样本的离散程度,定义为:

S B = ∑ k = 1 K n k ( μ k − μ ) ( μ k − μ ) T \mathbf{S}_B = \sum_{k=1}^K n_k (\mu_k - \mu)(\mu_k - \mu)^T SB=k=1Knk(μkμ)(μkμ)T

其中, μ \mu μ是所有样本的全局均值: μ = 1 N ∑ i = 1 N x i \mu = \frac{1}{N} \sum_{i=1}^N x_i μ=N1i=1Nxi N N N是总样本数。

4. 目标函数

LDA的目标是找到投影矩阵 W \mathbf{W} W,使得以下目标函数达到最大化:

J ( W ) = ∣ W T S B W ∣ ∣ W T S W W ∣ J(\mathbf{W}) = \frac{|\mathbf{W}^T \mathbf{S}_B \mathbf{W}|}{|\mathbf{W}^T \mathbf{S}_W \mathbf{W}|} J(W)=WTSWWWTSBW

这里的目标是最大化类间散度,同时最小化类内散度。

5. 求解过程

通过拉格朗日乘数法,将问题转化为对广义特征值问题的求解:

S B w = λ S W w \mathbf{S}_B \mathbf{w} = \lambda \mathbf{S}_W \mathbf{w} SBw=λSWw

通过求解上述广义特征值问题,可以得到特征向量 w \mathbf{w} w,这些特征向量组成的矩阵就是我们要找的投影矩阵 W \mathbf{W} W

6. 投影

得到投影矩阵 W \mathbf{W} W后,原始数据可以通过以下方式进行投影:

y i = W T x i y_i = \mathbf{W}^T x_i yi=WTxi

投影后的数据可以用于后续的分类或聚类分析。

总结

线性判别分析通过最大化类间散度和最小化类内散度使不同类别的数据在低维空间中能够更好地分开,是一种经典的降维和分类方法。它所依赖的数学基础是关于矩阵的散布度量以及特征值问题的求解。

常用面试考点

线性判别分析(LDA)是一种用于分类的降维技术,尤其擅长处理多分类任务。其目标是通过寻找一个投影,将数据投影到一个低维的空间,同时最大化类间距离与最小化类内距离。以下是 LDA 的一些关键点,常出现在面试中:

1. 原理概述

LDA 试图在保留数据集的判别信息的同时减少数据的维度。它通过以下步骤实现:

  • 最大化类间方差(Between-class variance):使不同类之间的中心距离尽可能大。

  • 最小化类内方差(Within-class variance):使同一类内部的样本点尽可能紧凑。

2. 数学公式

给定一个有 ( K ) 个类的样本集,LDA 先定义散布矩阵:

  • 类内散布矩阵 ( S_W ):反映同一类样本的分散程度。

S W = ∑ c = 1 K ∑ x ∈ C c ( x − μ c ) ( x − μ c ) T S_W = \sum_{c=1}^{K} \sum_{x \in C_c} (x - \mu_c)(x - \mu_c)^T SW=c=1KxCc(xμc)(xμc)T

其中,( C_c ) 表示第 ( c ) 类,( \mu_c ) 是第 ( c ) 类的均值。

  • 类间散布矩阵 ( S_B ):反映不同类样本之间的分散程度。

S B = ∑ c = 1 K N c ( μ c − μ ) ( μ c − μ ) T S_B = \sum_{c=1}^{K} N_c (\mu_c - \mu)(\mu_c - \mu)^T SB=c=1KNc(μcμ)(μcμ)T

其中,( N_c ) 是第 ( c ) 类中的样本数量,( \mu ) 是所有样本的全局均值。

3. 判别准则

LDA 通过最大化下述目标函数来找到最佳投影向量 ( W ):

J ( W ) = W T S B W W T S W W J(W) = \frac{W^T S_B W}{W^T S_W W} J(W)=WTSWWWTSBW

通过对该函数求导,问题转化为求解如下广义特征值问题:

S W − 1 S B W = λ W S_W^{-1}S_B W = \lambda W SW1SBW=λW

最佳的投影向量 ( W ) 是这个广义特征值问题的特征向量。

4. 实际应用

LDA 的输出通常是几个一组的特征向量,通常选择前 ( K-1 ) 个特征向量用于降维,其中 ( K ) 是类的数量。

5. 优缺点

  • 优点

    • 通过降维可以有效地减少计算和模型复杂度。
    • 对于线性可分的数据非常有效。
  • 缺点

    • 假设数据是高斯分布,并且各类具有相同的协方差矩阵,这在实际中未必成立。
    • 对于非线性可分的数据,其性能可能不如非线性方法。

你可能感兴趣的:(人工智能,机器学习,算法)