ISLR讀書筆記七:線性判別分析(LDA)

曉煒發表於2020-10-01

前言

線性判別分析(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較複雜,方差較高,但是偏差低。

相關文章