1. 程式人生 > >【Scikit-Learn 中文文件】線性和二次判別分析

【Scikit-Learn 中文文件】線性和二次判別分析

1.2. 線性和二次判別分析

這些分類器十分具有魅力,因為他們可以很容易計算得到閉式解,其天生的多分類特性,在實踐中已經證明很有效,並且不需要再次調參。

ldaqda

以上這些影象展示了 Linear Discriminant Analysis (線性判別分析)以及 Quadratic Discriminant Analysis (二次判別分析)的決策邊界。其中,最底行闡述了線性判別分析只能學習線性邊界, 而二次判別分析則可以學習二次函式的邊界,因此它相對而言更加靈活。

1.2.2. LDA 和 QDA 分類器的數學公式

LDA 和 QDA 都是源於簡單的概率模型,這些模型對於每一個類別 k

 的相關分佈 P(X|y=k) 都可以通過貝葉斯定理所獲得。

P(y=k | X) = \frac{P(X | y=k) P(y=k)}{P(X)} = \frac{P(X | y=k) P(y = k)}{ \sum_{l} P(X | y=l) \cdot P(y=l)}

並且我們選擇能夠最大化條件概率的類別 k.

更詳細地,對於線性以及二次判別分析, P(X|y) 被塑造成一個多變數的高斯分佈密度:

p(X | y=k) = \frac{1}{(2\pi)^n |\Sigma_k|^{1/2}}\exp\left(-\frac{1}{2} (X-\mu_k)^t \Sigma_k^{-1} (X-\mu_k)\right)

為了使用該模型作為分類器使用,我們需要通過訓練集資料預測更重要的類別 P(y=k) (通過每個類 k 的例項的概率預測) 類別均值 \mu_k (用經驗的樣本類別均值)以及協方差矩陣(過用經驗的樣本類別協方差或者正則化的估計器estimator: 見下面的 shrinkage章節).

在 LDA 中,每個類別 k 的高斯分佈共享相同的協方差矩陣:\Sigma_k = \Sigma for all k。可以帶來線性的 決策平面, 正如所見, 通過比較log似然比 \log[P(y=k | X) / P(y=l | X)] 。

\log\left(\frac{P(y=k|X)}{P(y=l | X)}\right) = 0 \Leftrightarrow (\mu_k-\mu_l)\Sigma^{-1} X = \frac{1}{2} (\mu_k^t \Sigma^{-1} \mu_k - \mu_l^t \Sigma^{-1} \mu_l)

對於 QDA 而言,沒有關於高斯協方差矩陣 \Sigma_k 的假設,因此帶來二次決策平面. 更多細節見 [3] .

Note

 

與高斯樸素貝葉斯的關係

如果在QDA模型中假設協方差矩陣是對角的,那麼在每個類別中的輸入資料則被假定是相關依賴的。 而且結果分類器會和高斯樸素貝葉斯分類器 naive_bayes.GaussianNB 相同。

1.2.3. LDA 的降維數學公式

為了理解 LDA 在降維上的應用,它對於進行 LDA 分類的幾何重構是十分有用的。我們用 K 表示目標類別的總數。 由於在 LDA 中我們假設所有類別都有相同預測的協方差 \Sigma ,我們可重新調節資料從而讓讓協方差相同。

X^* = D^{-1/2}U^t X\text{ with }\Sigma = UDU^t

在縮放後可以分類資料點和找到離資料點最近的歐式距離相同的預測類別均值。但是它可以在投影到 K-1 個由所有 \mu^*_k 個類生成的仿射子空間
H_K 之後被完成。這也表明,LDA 分類器中存在一個利用線性投影到 K-1 個維度空間的降維工具。

1.2.4. Shrinkage(收縮)

收縮是一個在訓練樣本數量相比特徵而言很小的情況下可以提升預測(準確性)的協方差矩陣。 在這個情況下,經驗樣本協方差是一個很差的預測器。LDA 收縮可以通過設定 discriminant_analysis.LinearDiscriminantAnalysis 類的 shrinkage引數為 ‘auto’ 以得到應用。

shrinkage parameter (收縮引數)的值同樣也可以手動被設定為 0-1 之間。特別地,0 值對應著沒有收縮(這意味著經驗協方差矩陣將會被使用), 而 1 值則對應著完全使用收縮(意味著方差的對角矩陣將被當作協方差矩陣的估計)。設定該引數在兩個極端值之間會估計一個(特定的)協方差矩陣的收縮形式

shrinkage

1.2.5. 預估演算法

預設的 solver 是 ‘svd’。它可以進行classification (分類) 以及 transform (轉換),而且它不會依賴於協方差矩陣的計算(結果)。這在特徵數量特別大的時候就顯得十分具有優勢。然而,’svd’ solver 無法與 shrinkage (收縮)同時使用。

‘lsqr’ solver 則是一個高效的演算法,它僅僅只能用於分類使用,而且它支援 shrinkage (收縮)。

‘eigen’(特徵) solver 是基於 class scatter (類散度)與 class scatter ratio (類內離散率)之間的優化。 它既可以被用於classification (分類)以及 transform (轉換),此外它還同時支援收縮。然而,該解決方案需要計算協方差矩陣,因此它可能不適用於具有大量特徵的情況。

References:

[3] (12) “The Elements of Statistical Learning”, Hastie T., Tibshirani R., Friedman J., Section 4.3, p.106-119, 2008.
[4] Ledoit O, Wolf M. Honey, I Shrunk the Sample Covariance Matrix. The Journal of Portfolio Management 30(4), 110-119, 2004.

有興趣的大佬們也可以和我們一起來維護,持續更新中 。。。

機器學習交流群: 629470233