ISLR读书笔记七:线性判别分析(LDA)

线性判别分析(LDA)

  • 前言
  • 单变量的LDA
  • 多变量的LDA
  • 二次判别分析(QDA)

前言

线性判别分析(linear discriminant analysis,简称LDA)是一种解决分类问题的方法。上一篇文章中讲到的逻辑斯蒂回归是处理分类问题的一个很好的模型,那么为什么还需要LDA呢?主要有以下三个原因:

  1. 当类分离得很好的时候,逻辑斯蒂回归的参数估计很不稳定,而LDA不会存在这个问题。
  2. n n n 很小,而自变量 X X X 的分布大致服从正态分布时,LDA比逻辑斯蒂回归更稳定
  3. LDA比逻辑斯蒂回归更适合处理多分类的问题

LDA的出发点是贝叶斯公式(Bayes’ Theorem)。假设要预测的因变量一共有 K K K 类, π k \pi_k πk 表示随机选择观测值,属于类 k k k 的先验概率(prior probability),令 f k ( x ) = P r ( X = x ∣ Y = k ) f_k(x)=Pr(X=x|Y=k) fk(x)=Pr(X=xY=k) 表示类 k k k 的概率密度函数(density function),利用贝叶斯公式可以得到
P r ( Y = k ∣ X = x ) = π k f k ( x ) ∑ l = 1 K π l f l ( x ) Pr(Y=k|X=x)=\frac{\pi_kf_k(x)}{\sum_{l=1}^K\pi_lf_l(x)} Pr(Y=kX=x)=l=1Kπlfl(x)πkfk(x)
p k ( X ) = P r ( Y = k ∣ X ) p_k(X)=Pr(Y=k|X) pk(X)=Pr(Y=kX) p k ( X ) p_k(X) pk(X) 称作为后验概率(posterior probability)。联系之前提到的贝叶斯分类器,给定 X X X 之后,使得 p k ( X ) p_k(X) pk(X) 最大的 k k k,即是预测的类。

单变量的LDA

假设只有一个自变量 x x x,假设 f k ( x ) f_k(x) fk(x) 是正态分布(normal distribution)。即
f k ( x ) = 1 2 π σ k e x p ( − 1 2 σ k 2 ( x − μ k ) 2 ) f_k(x)=\frac{1}{\sqrt{2\pi}\sigma_k}exp(-\frac{1}{2\sigma_k^2}(x-\mu_k)^2) fk(x)=2π σk1exp(2σk21(xμk)2)
再进一步假设 σ 1 2 = ⋯ = σ K 2 \sigma_1^2=\cdots=\sigma_K^2 σ12==σK2,代入 p k ( X ) p_k(X) pk(X)可以得到
p k ( X ) = π k 1 2 π σ e x p ( − 1 2 σ 2 ( x − μ k ) 2 ) ∑ l = 1 K π l 1 2 π σ e x p ( − 1 2 σ 2 ( x − μ l ) 2 ) p_k(X) = \frac{\pi_k\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{1}{2\sigma^2}(x-\mu_k)^2)}{\sum_{l=1}^K\pi_l\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{1}{2\sigma^2}(x-\mu_l)^2)} pk(X)=l=1Kπl2π σ1exp(2σ21(xμl)2)πk2π σ1exp(2σ21(xμk)2)
要使得 p k ( X ) p_k(X) pk(X) 最大,对其取对数之后不难发现,即要使得下式最大:
δ k ( x ) = x μ k σ 2 − μ k 2 2 σ 2 + l o g ( π k ) \delta_k(x)=x\frac{\mu_k}{\sigma^2}-\frac{\mu_k^2}{2\sigma_2}+log(\pi_k) δk(x)=xσ2μk2σ2μk2+log(πk)
实际问题中, μ 1 , … , μ K , π 1 , … , π K , σ 2 \mu_1,\dots,\mu_K,\pi_1,\dots,\pi_K,\sigma^2 μ1,,μK,π1,,πK,σ2,都需要估计。可以用以下式子估计:
μ ^ k = 1 n k ∑ i : y i = k x i \hat{\mu}_k=\frac{1}{n_k}\sum_{i:y_i=k}x_i μ^k=nk1i:yi=kxi
π ^ k = n k n \hat{\pi}_k=\frac{n_k}{n} π^k=nnk
σ ^ 2 = 1 n − K ∑ k = 1 K ∑ i : y i = k ( x i − μ ^ k ) 2 \hat{\sigma}^2=\frac{1}{n-K}\sum_{k=1}^K\sum_{i:y_i=k}(x_i-\hat{\mu}_k)^2 σ^2=nK1k=1Ki:yi=k(xiμ^k)2
然后就可以得到
δ ^ k ( x ) = x μ ^ k σ ^ 2 − μ ^ k 2 2 σ ^ 2 + l o g ( π ^ k ) \hat{\delta}_k(x)=x\frac{\hat{\mu}_k}{\hat{\sigma}^2}-\frac{\hat{\mu}_k^2}{2\hat{\sigma}_2}+log(\hat{\pi}_k) δ^k(x)=xσ^2μ^k2σ^2μ^k2+log(π^k)
判别函数(discriminant funcition) δ ^ k ( x ) \hat{\delta}_k(x) δ^k(x) x x x 的线性函数,这就是线性判别分析的由来。需要注意的是,这里要求每类的分布都是正态的,且方差相同。

多变量的LDA

当自变量有多个时,需要多元正态分布(multivariate normal distribution)。假设有 p p p 个自变量,记 X ∼ N ( μ , Σ ) X\sim N(\mu,\Sigma) XN(μ,Σ) E ( X ) = μ E(X)=\mu E(X)=μ X X X 的均值( p × 1 p\times1 p×1),Cov( X X X) = Σ \Sigma Σ X X X 的协方差矩阵( p × p p\times p p×p ) ,多元正态分布定义如下:
f ( x ) = 1 ( 2 π ) p / 2 ∣ Σ ∣ 1 / 2 e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) f(x)=\frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)) f(x)=(2π)p/2Σ1/21exp(21(xμ)TΣ1(xμ))
此时
δ k ( x ) = x T Σ − 1 μ k − 1 2 μ k T Σ − 1 μ k + l o g ( π k ) \delta_k(x)=x^T\Sigma^{-1}\mu_k-\frac{1}{2}\mu_k^T\Sigma^{-1}\mu_k+log(\pi_k) δk(x)=xTΣ1μk21μkTΣ1μk+log(πk)
μ 1 , … , μ K , π 1 , … , π K , Σ 2 \mu_1,\dots,\mu_K,\pi_1,\dots,\pi_K,\Sigma^2 μ1,,μK,π1,,πK,Σ2 可以用单变量时类似的方法进行估计

二次判别分析(QDA)

线性判别分析要求每个类的协方差矩阵都相同,而如果每个类的协方差矩阵可以不同,那么就有了二次判别分析(quadratic discriminant analysis,简称QDA)。即 X ∼ N ( μ k , Σ k ) X\sim N(\mu_k,\Sigma_k) XN(μk,Σk),在这个条件下,可以得到
δ k ( x ) = − 1 2 x T Σ k − 1 x + x T Σ k − 1 μ k − 1 2 μ k T Σ k − 1 μ k − 1 2 l o g ∣ Σ k ∣ + l o g π k \delta_k(x) = -\frac{1}{2}x^T\Sigma_k^{-1}x+x^T\Sigma_k^{-1}\mu_k-\frac{1}{2}\mu_k^T\Sigma_k^{-1}\mu_k-\frac{1}{2}log|\Sigma_k|+log\pi_k δk(x)=21xTΣk1x+xTΣk1μk21μkTΣk1μk21logΣk+logπk
δ k ( x ) \delta_k(x) δk(x) 关于 x x x 是二次的,这是二次判别分析名称的由来。
如何选取LDA或者QDA,取决于对偏差和方差的权衡。LDA模型简单,方差更低,但是有较高的偏差。而QDA较复杂,方差较高,但是偏差低。

你可能感兴趣的:(机器学习,机器学习)