LDA和PCA降維總結

線性判別分析(LDA)

LDA思想總結

​ 線性判別分析(Linear Discriminant Analysis,LDA)是一種經典的降維方法。和主成分分析PCA不考慮樣本類別輸出的無監督降維技術不同,LDA是一種監督學習的降維技術,數據集的每個樣本有類別輸出。

LDA分類思想簡單總結如下:

  1. 多維空間中,數據處理分類問題較爲複雜,LDA算法將多維空間中的數據投影到一條直線上,將d維數據轉化成1維數據進行處理。
  2. 對於訓練數據,設法將多維數據投影到一條直線上,同類數據的投影點儘可能接近,異類數據點儘可能遠離。
  3. 對數據進行分類時,將其投影到同樣的這條直線上,再根據投影點的位置來確定樣本的類別。

如果用一句話概括LDA思想,即“投影后類內方差最小,類間方差最大”。

圖解LDA核心思想

​ 假設有紅、藍兩類數據,這些數據特徵均爲二維,如下圖所示。我們的目標是將這些數據投影到一維,讓每一類相近的數據的投影點儘可能接近,不同類別數據儘可能遠,即圖中紅色和藍色數據中心之間的距離儘可能大。

左圖和右圖是兩種不同的投影方式。

​ 左圖思路:讓不同類別的平均點距離最遠的投影方式。

​ 右圖思路:讓同類別的數據捱得最近的投影方式。

​ 從上圖直觀看出,右圖紅色數據和藍色數據在各自的區域來說相對集中,根據數據分佈直方圖也可看出,所以右圖的投影效果好於左圖,左圖中間直方圖部分有明顯交集。

​ 以上例子是基於數據是二維的,分類後的投影是一條直線。如果原始數據是多維的,則投影后的分類面是一低維的超平面。

二類LDA算法原理

​ 輸入:數據集 D=\{(\boldsymbol x_1,\boldsymbol y_1),(\boldsymbol x_2,\boldsymbol y_2),...,(\boldsymbol x_m,\boldsymbol y_m)\}​,其中樣本 \boldsymbol x_i ​ 是n維向量,\boldsymbol y_i \epsilon \{0, 1\}​,降維後的目標維度 d​。定義

N_j(j=0,1) 爲第 j 類樣本個數;

X_j(j=0,1) 爲第 j 類樣本的集合;

u_j(j=0,1)​ 爲第 j​ 類樣本的均值向量;

\sum_j(j=0,1) 爲第 j 類樣本的協方差矩陣。

​ 其中
u_j = \frac{1}{N_j} \sum_{\boldsymbol x\epsilon X_j}\boldsymbol x(j=0,1), \sum_j = \sum_{\boldsymbol x\epsilon X_j}(\boldsymbol x-u_j)(\boldsymbol x-u_j)^T(j=0,1)
​ 假設投影直線是向量 \boldsymbol w,對任意樣本 \boldsymbol x_i,它在直線 w上的投影爲 \boldsymbol w^Tx_i,兩個類別的中心點 u_0, u_1在直線 w 的投影分別爲 \boldsymbol w^Tu_0\boldsymbol w^Tu_1

​ LDA的目標是讓兩類別的數據中心間的距離 \| \boldsymbol w^Tu_0 - \boldsymbol w^Tu_1 \|^2_2 儘量大,與此同時,希望同類樣本投影點的協方差\boldsymbol w^T \sum_0 \boldsymbol w\boldsymbol w^T \sum_1 \boldsymbol w 儘量小,最小化 \boldsymbol w^T \sum_0 \boldsymbol w - \boldsymbol w^T \sum_1 \boldsymbol w​
​ 定義
​ 類內散度矩陣
S_w = \sum_0 + \sum_1 = \sum_{\boldsymbol x\epsilon X_0}(\boldsymbol x-u_0)(\boldsymbol x-u_0)^T + \sum_{\boldsymbol x\epsilon X_1}(\boldsymbol x-u_1)(\boldsymbol x-u_1)^T
​ 類間散度矩陣 S_b = (u_0 - u_1)(u_0 - u_1)^T

​ 據上分析,優化目標爲
\mathop{\arg\max}_\boldsymbol w J(\boldsymbol w) = \frac{\| \boldsymbol w^Tu_0 - \boldsymbol w^Tu_1 \|^2_2}{\boldsymbol w^T \sum_0\boldsymbol w + \boldsymbol w^T \sum_1\boldsymbol w} = \frac{\boldsymbol w^T(u_0-u_1)(u_0-u_1)^T\boldsymbol w}{\boldsymbol w^T(\sum_0 + \sum_1)\boldsymbol w} = \frac{\boldsymbol w^TS_b\boldsymbol w}{\boldsymbol w^TS_w\boldsymbol w}
​ 根據廣義瑞利商的性質,矩陣 S^{-1}_{w} S_b 的最大特徵值爲 J(\boldsymbol w) 的最大值,矩陣 S^{-1}_{w} S_b 的最大特徵值對應的特徵向量即爲 \boldsymbol w

LDA算法流程總結

LDA算法降維流程如下:

​ 輸入:數據集 D = \{ (x_1,y_1),(x_2,y_2), ... ,(x_m,y_m) \},其中樣本 x_i 是n維向量,y_i \epsilon \{C_1, C_2, ..., C_k\},降維後的目標維度 d

​ 輸出:降維後的數據集 \overline{D}

步驟:

  1. 計算類內散度矩陣 S_w
  2. 計算類間散度矩陣 S_b​
  3. 計算矩陣 S^{-1}_wS_b​
  4. 計算矩陣 S^{-1}_wS_b 的最大的 d 個特徵值。
  5. 計算 d 個特徵值對應的 d 個特徵向量,記投影矩陣爲 W 。
  6. 轉化樣本集的每個樣本,得到新樣本 P_i = W^Tx_i​
  7. 輸出新樣本集 \overline{D} = \{ (p_1,y_1),(p_2,y_2),...,(p_m,y_m) \}​

LDA和PCA區別

異同點 LDA PCA
相同點 1. 兩者均可以對數據進行降維;<br />2. 兩者在降維時均使用了矩陣特徵分解的思想;<br />3. 兩者都假設數據符合高斯分佈;
不同點 有監督的降維方法; 無監督的降維方法;
降維最多降到k-1維; 降維多少沒有限制;
可以用於降維,還可以用於分類; 只用於降維;
選擇分類性能最好的投影方向; 選擇樣本點投影具有最大方差的方向;
更明確,更能反映樣本間差異; 目的較爲模糊;

LDA優缺點

優缺點 簡要說明
優點 1. 可以使用類別的先驗知識;<br />2. 以標籤、類別衡量差異性的有監督降維方式,相對於PCA的模糊性,其目的更明確,更能反映樣本間的差異;
缺點 1. LDA不適合對非高斯分佈樣本進行降維;<br />2. LDA降維最多降到分類數k-1維;<br />3. LDA在樣本分類信息依賴方差而不是均值時,降維效果不好;<br />4. LDA可能過度擬合數據。

主成分分析(PCA)

主成分分析(PCA)思想總結

  1. PCA就是將高維的數據通過線性變換投影到低維空間上去。
  2. 投影思想:找出最能夠代表原始數據的投影方法。被PCA降掉的那些維度只能是那些噪聲或是冗餘的數據。
  3. 去冗餘:去除可以被其他向量代表的線性相關向量,這部分信息量是多餘的。
  4. 去噪聲,去除較小特徵值對應的特徵向量,特徵值的大小反映了變換後在特徵向量方向上變換的幅度,幅度越大,說明這個方向上的元素差異也越大,要保留。
  5. 對角化矩陣,尋找極大線性無關組,保留較大的特徵值,去除較小特徵值,組成一個投影矩陣,對原始樣本矩陣進行投影,得到降維後的新樣本矩陣。
  6. 完成PCA的關鍵是——協方差矩陣。協方差矩陣,能同時表現不同維度間的相關性以及各個維度上的方差。協方差矩陣度量的是維度與維度之間的關係,而非樣本與樣本之間。
  7. 之所以對角化,因爲對角化之後非對角上的元素都是0,達到去噪聲的目的。對角化後的協方差矩陣,對角線上較小的新方差對應的就是那些該去掉的維度。所以我們只取那些含有較大能量(特徵值)的維度,其餘的就舍掉,即去冗餘。

圖解PCA核心思想

​ PCA可解決訓練數據中存在數據特徵過多或特徵累贅的問題。核心思想是將m維特徵映射到n維(n < m),這n維形成主元,是重構出來最能代表原始數據的正交特徵。

​ 假設數據集是m個n維,(\boldsymbol x^{(1)}, \boldsymbol x^{(2)}, \cdots, \boldsymbol x^{(m)})。如果n=2,需要降維到n'=1,現在想找到某一維度方向代表這兩個維度的數據。下圖有u_1, u_2兩個向量方向,但是哪個向量纔是我們所想要的,可以更好代表原始數據集的呢?

從圖可看出,u_1u_2好,爲什麼呢?有以下兩個主要評價指標:

  1. 樣本點到這個直線的距離足夠近。
  2. 樣本點在這個直線上的投影能儘可能的分開。

如果我們需要降維的目標維數是其他任意維,則:

  1. 樣本點到這個超平面的距離足夠近。
  2. 樣本點在這個超平面上的投影能儘可能的分開。

PCA算法推理

下面以基於最小投影距離爲評價指標推理:

​ 假設數據集是m個n維,(x^{(1)}, x^{(2)},...,x^{(m)}),且數據進行了中心化。經過投影變換得到新座標爲 {w_1,w_2,...,w_n},其中 w 是標準正交基,即 \| w \|_2 = 1w^T_iw_j = 0

​ 經過降維後,新座標爲 \{ w_1,w_2,...,w_n \},其中 n' 是降維後的目標維數。樣本點 x^{(i)} 在新座標系下的投影爲 z^{(i)} = \left(z^{(i)}_1, z^{(i)}_2, ..., z^{(i)}_{n'} \right),其中 z^{(i)}_j = w^T_j x^{(i)}x^{(i)} ​ 在低維座標系裏第 j 維的座標。

​ 如果用 z^{(i)} 去恢復 x^{(i)} ,則得到的恢復數據爲 \widehat{x}^{(i)} = \sum^{n'}_{j=1} x^{(i)}_j w_j = Wz^{(i)},其中 W爲標準正交基組成的矩陣。

​ 考慮到整個樣本集,樣本點到這個超平面的距離足夠近,目標變爲最小化 \sum^m_{i=1} \| \hat{x}^{(i)} - x^{(i)} \|^2_2 。對此式進行推理,可得:
\sum^m_{i=1} \| \hat{x}^{(i)} - x^{(i)} \|^2_2 = \sum^m_{i=1} \| Wz^{(i)} - x^{(i)} \|^2_2 \\ = \sum^m_{i=1} \left( Wz^{(i)} \right)^T \left( Wz^{(i)} \right) - 2\sum^m_{i=1} \left( Wz^{(i)} \right)^T x^{(i)} + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = \sum^m_{i=1} \left( z^{(i)} \right)^T \left( z^{(i)} \right) - 2\sum^m_{i=1} \left( z^{(i)} \right)^T x^{(i)} + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = - \sum^m_{i=1} \left( z^{(i)} \right)^T \left( z^{(i)} \right) + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = -tr \left( W^T \left( \sum^m_{i=1} x^{(i)} \left( x^{(i)} \right)^T \right)W \right) + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} \\ = -tr \left( W^TXX^TW \right) + \sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)}

​ 在推導過程中,分別用到了 \overline{x}^{(i)} = Wz^{(i)} ,矩陣轉置公式 (AB)^T = B^TA^TW^TW = Iz^{(i)} = W^Tx^{(i)} 以及矩陣的跡,最後兩步是將代數和轉爲矩陣形式。
​ 由於 W 的每一個向量 w_j 是標準正交基,\sum^m_{i=1} x^{(i)} \left( x^{(i)} \right)^T 是數據集的協方差矩陣,\sum^m_{i=1} \left( x^{(i)} \right)^T x^{(i)} 是一個常量。最小化 \sum^m_{i=1} \| \hat{x}^{(i)} - x^{(i)} \|^2_2 又可等價於
\underbrace{\arg \min}_W - tr \left( W^TXX^TW \right) s.t.W^TW = I
利用拉格朗日函數可得到
J(W) = -tr(W^TXX^TW) + \lambda(W^TW - I)
​ 對 W 求導,可得 -XX^TW + \lambda W = 0 ,也即 XX^TW = \lambda WXX^Tn' 個特徵向量組成的矩陣,\lambdaXX^T 的特徵值。W 即爲我們想要的矩陣。
​ 對於原始數據,只需要 z^{(i)} = W^TX^{(i)} ,就可把原始數據集降維到最小投影距離的 n' 維數據集。

​ 基於最大投影方差的推導,這裏就不再贅述,有興趣的同仁可自行查閱資料。

PCA算法流程總結

輸入:n​ 維樣本集 D = \left( x^{(1)},x^{(2)},...,x^{(m)} \right)​ ,目標降維的維數 n'​

輸出:降維後的新樣本集 D' = \left( z^{(1)},z^{(2)},...,z^{(m)} \right)

主要步驟如下:

  1. 對所有的樣本進行中心化,x^{(i)} = x^{(i)} - \frac{1}{m} \sum^m_{j=1} x^{(j)}
  2. 計算樣本的協方差矩陣 XX^T​
  3. 對協方差矩陣 XX^T 進行特徵值分解。
  4. 取出最大的 n' 個特徵值對應的特徵向量 \{ w_1,w_2,...,w_{n'} \}
  5. 標準化特徵向量,得到特徵向量矩陣 W
  6. 轉化樣本集中的每個樣本 z^{(i)} = W^T x^{(i)}
  7. 得到輸出矩陣 D' = \left( z^{(1)},z^{(2)},...,z^{(n)} \right)​
    :在降維時,有時不明確目標維數,而是指定降維到的主成分比重閾值 k(k \epsilon(0,1])​ 。假設 n​ 個特徵值爲 \lambda_1 \geqslant \lambda_2 \geqslant ... \geqslant \lambda_n​ ,則 n'​ 可從 \sum^{n'}_{i=1} \lambda_i \geqslant k \times \sum^n_{i=1} \lambda_i ​ 得到。

PCA算法主要優缺點

優缺點 簡要說明
優點 1. 僅僅需要以方差衡量信息量,不受數據集以外的因素影響。 2.各主成分之間正交,可消除原始數據成分間的相互影響的因素。3. 計算方法簡單,主要運算是特徵值分解,易於實現。
缺點 1.主成分各個特徵維度的含義具有一定的模糊性,不如原始樣本特徵的解釋性強。2. 方差小的非主成分也可能含有對樣本差異的重要信息,因降維丟棄可能對後續數據處理有影響。

降維的必要性及目的

降維的必要性

  1. 多重共線性和預測變量之間相互關聯。多重共線性會導致解空間的不穩定,從而可能導致結果的不連貫。
  2. 高維空間本身具有稀疏性。一維正態分佈有68%的值落於正負標準差之間,而在十維空間上只有2%。
  3. 過多的變量,對查找規律造成冗餘麻煩。
  4. 僅在變量層面上分析可能會忽略變量之間的潛在聯繫。例如幾個預測變量可能落入僅反映數據某一方面特徵的一個組內。

降維的目的

  1. 減少預測變量的個數。
  2. 確保這些變量是相互獨立的。
  3. 提供一個框架來解釋結果。相關特徵,特別是重要特徵更能在數據中明確的顯示出來;如果只有兩維或者三維的話,更便於可視化展示。
  4. 數據在低維下更容易處理、更容易使用。
  5. 去除數據噪聲。
  6. 降低算法運算開銷。

KPCA與PCA的區別

​ 應用PCA算法前提是假設存在一個線性超平面,進而投影。那如果數據不是線性的呢?該怎麼辦?這時候就需要KPCA,數據集從 n 維映射到線性可分的高維 N >n,然後再從 N 維降維到一個低維度 n'(n'<n<N)

​ KPCA用到了核函數思想,使用了核函數的主成分分析一般稱爲核主成分分析(Kernelized PCA, 簡稱KPCA)。

假設高維空間數據由 n​ 維空間的數據通過映射 \phi​ 產生。

n 維空間的特徵分解爲:
\sum^m_{i=1} x^{(i)} \left( x^{(i)} \right)^T W = \lambda W

​ 其映射爲
\sum^m_{i=1} \phi \left( x^{(i)} \right) \phi \left( x^{(i)} \right)^T W = \lambda W

​ 通過在高維空間進行協方差矩陣的特徵值分解,然後用和PCA一樣的方法進行降維。由於KPCA需要核函數的運算,因此它的計算量要比PCA大很多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章