❶ LDA和PCA降維總結
線性判別分析(Linear Discriminant Analysis,LDA)是一種經典的降維方法。和主成分分析PCA不考慮樣本類別輸出的無監督降維技術不同,LDA是一種監督學習的降維技術,數據集的每個樣本有類別輸出。
LDA分類思想簡單總結如下:
如果用一句話概括LDA思想,即「投影後類內方差最小,類間方差最大」。
假設有紅、藍兩類數據,這些數據特徵均為二維,如下圖所示。我們的目標是將這些數據投影到一維,讓每一類相近的數據的投影點盡可能接近,不同類別數據盡可能遠,即圖中紅色和藍色數據中心之間的距離盡可能大。
左圖和右圖是兩種不同的投影方式。
左圖思路:讓不同類別的平均點距離最遠的投影方式。
右圖思路:讓同類別的數據挨得最近的投影方式。
從上圖直觀看出,右圖紅色數據和藍色數據在各自的區域來說相對集中,根據數據分布直方圖也可看出,所以右圖的投影效果好於左圖,左圖中間直方圖部分有明顯交集。
以上例子是基於數據是二維的,分類後的投影是一條直線。如果原始數據是多維的,則投影後的分類面是一低維的超平面。
輸入:數據集 ,其中樣本 是n維向量, ,降維後的目標維度 。定義
為第 類樣本個數;
為第 類樣本的集合;
為第 類樣本的均值向量;
為第 類樣本的協方差矩陣。
其中
假設投影直線是向量 ,對任意樣本 ,它在直線 上的投影為 ,兩個類別的中心點 , 在直線 的投影分別為 、 。
LDA的目標是讓兩類別的數據中心間的距離 盡量大,與此同時,希望同類樣本投影點的協方差 、 盡量小,最小化 。
定義
類內散度矩陣
類間散度矩陣
據上分析,優化目標為
根據廣義瑞利商的性質,矩陣 的最大特徵值為 的最大值,矩陣 的最大特徵值對應的特徵向量即為 。
LDA演算法降維流程如下:
輸入:數據集 ,其中樣本 是n維向量, ,降維後的目標維度 。
輸出:降維後的數據集 。
步驟:
PCA可解決訓練數據中存在數據特徵過多或特徵累贅的問題。核心思想是將m維特徵映射到n維(n < m),這n維形成主元,是重構出來最能代表原始數據的正交特徵。
假設數據集是m個n維, 。如果 ,需要降維到 ,現在想找到某一維度方向代表這兩個維度的數據。下圖有 兩個向量方向,但是哪個向量才是我們所想要的,可以更好代表原始數據集的呢?
從圖可看出, 比 好,為什麼呢?有以下兩個主要評價指標:
如果我們需要降維的目標維數是其他任意維,則:
下面以基於最小投影距離為評價指標推理:
假設數據集是m個n維, ,且數據進行了中心化。經過投影變換得到新坐標為 ,其中 是標准正交基,即 , 。
經過降維後,新坐標為 ,其中 是降維後的目標維數。樣本點 在新坐標系下的投影為 ,其中 是 在低維坐標系裡第 j 維的坐標。
如果用 去恢復 ,則得到的恢復數據為 ,其中 為標准正交基組成的矩陣。
考慮到整個樣本集,樣本點到這個超平面的距離足夠近,目標變為最小化 。對此式進行推理,可得:
在推導過程中,分別用到了 ,矩陣轉置公式 , , 以及矩陣的跡,最後兩步是將代數和轉為矩陣形式。
由於 的每一個向量 是標准正交基, 是數據集的協方差矩陣, 是一個常量。最小化 又可等價於
利用拉格朗日函數可得到
對 求導,可得 ,也即 。 是 個特徵向量組成的矩陣, 為 的特徵值。 即為我們想要的矩陣。
對於原始數據,只需要 ,就可把原始數據集降維到最小投影距離的 維數據集。
基於最大投影方差的推導,這里就不再贅述,有興趣的同仁可自行查閱資料。
輸入: 維樣本集 ,目標降維的維數 。
輸出:降維後的新樣本集 。
主要步驟如下:
降維的必要性 :
降維的目的 :
應用PCA演算法前提是假設存在一個線性超平面,進而投影。那如果數據不是線性的呢?該怎麼辦?這時候就需要KPCA,數據集從 維映射到線性可分的高維 ,然後再從 維降維到一個低維度 。
KPCA用到了核函數思想,使用了核函數的主成分分析一般稱為核主成分分析(Kernelized PCA, 簡稱KPCA)。
假設高維空間數據由 維空間的數據通過映射 產生。
維空間的特徵分解為:
其映射為
通過在高維空間進行協方差矩陣的特徵值分解,然後用和PCA一樣的方法進行降維。由於KPCA需要核函數的運算,因此它的計算量要比PCA大很多。
❷ 葫蘆書第四章——降維
在機器學習中,數據通常需要被表示為向量形式以輸入模型進行訓練。但眾所周知,對高維向量進行處理和分析時,會極大地消耗系統資源,甚至產生維度災難(相關筆記記錄於 這里 )。因此,用一個低維度的向量表示原始高維度的特徵就顯得尤為重要。
在機器學習領域中,我們對原始數據進行特徵提取,有時會得到比較高維的特徵向量。在這些向量所處的高維空間中,包含很多的冗餘和雜訊。我們希望通過降維的方式來尋找數據內部的特性,從而提升特徵表達能力,降低訓練復雜度。主成分分析(PCA)作為降維中最經典的方法,屬於一種 線性、非監督、全局的降維演算法 。
1、所謂主成分,就是把原特徵進行線性組合後得到新的特徵,此特徵盡可能多地保留了原特徵的方差。
2、設一組參數 ,記原特徵為 ,新特徵為 ,根據定義,我們要讓 的方差盡可能大,即 這就是我們的目標函數。
3、具體的求解過程要藉助特徵值分解。
(a)是二維空間中經過中心化的一組數據,我們很容易看出主成分所在的軸(以下稱為主軸)的大致方向,即(b)中黃線所處的軸。因為在黃線所處的軸上,數據分布得更為分散,這也意味著數據在這個方向上方差更大。
我們不難引出 PCA的目標,即最大化投影方差,也就是讓數據在主軸上投影的方差最大 。對於給定的一組數據點 ,其中所有向量均為列向量,中心化後的表示為 ,其中 。我們知道,向量內積在幾何上表示為第一個向量投影到第二個向量上的長度,因此向量 在 (單位方向向量)上的投影坐標可以表示為 。所以目標是找到一個投影方向 ,使得 在 上的投影方差盡可能大。易知,投影之後均值為0( ),因此投影後方差可以表示為:
其中 其實就是協方差矩陣,我們將其寫為 ,另外,由於 是單位向量,因此 ,因此我們要求解一個最大化問題:
引入拉格朗日乘子並對 求導令其等於0,便可以推出 ,此時:
不難看出, 投影後的方差就是協方差矩陣的特徵值。我們要找到最大的方差也就是協方差矩陣最大的特徵值,最佳投影方向就是最大特徵值所對應的特徵向量。次佳投影方向位於最佳投影方向的正交空間中,是第二大特徵值對應的特徵向量,以此類推。至此,我們得到了PCA的求解方法:
1)對樣本數據進行中心化處理。
2)求樣本協方差矩陣。
3)對協方差矩陣進行特徵值分解,將特徵值從大到小排列。
4)取特徵值前 大對應的特徵向量 通過以下映射將 維樣本映射到 維:
定義降維後的信息佔比為:
可以。從線性回歸的角度切入,最佳投影方向對應的直線應該使得各點到此直線的距離的平方和最小。關於這個目標和最大方差目標的等價性,我在 這里 已經說明過了。
從求解直線的思路出發,很容易聯想到數學中的線性回歸問題,其目標也是求解一個線性函數使得對應直線能夠更好地擬合樣本點集合。如果我們從這個角度定義PCA的目標,那麼問題就會轉化為一個回歸問題。
數據集中每個點 到 維超平面 的距離為:
其中 表示 在超平面 上的投影向量。若該超平面 由 個標准正交基 構成,則有線代知識可知, 可由這組基線性表示:
其中 表示 在 方向上投影的長度。因此 實際上就是 在 這組標准正交基下的坐標。而PCA要優化的目標是:
將上式中每個距離展開:
可以看到,第一項與選取的 無關,是一個常數,將 代入第二項第三項得到:
因為當 時, ,因此上式可寫為:
於是:
這等價於求解帶約束的優化問題:
如果我們對 中的 個基 依次求解,就會發現 和最大方差理論的方法完全等價 。
線性判別分析(Linear Discriminant Analysis, LDA)是一種 有監督學習演算法 ,同時經常被用來對數據進行降維。
相比於PCA,LDA可以作為一種有監督的降維演算法。在PCA中沒有考慮數據的標簽(類別),只是把原數據映射到一些方差比較大的方向上而已。
假設用不同的顏色標注 兩個不同類別的數據,如圖所示。根據PCA演算法,數據應該映射到方差最大的那個方向,亦即 軸方向。但是, 兩個不同類別的數據就會完全混合在一起,很難區分開。所以,使用PCA演算法進行降維後再進行分類的效果會非常差。但是如果使用LDA演算法,數據會映射到 軸方向。
1、要想降維過程中不損失類別信息,一個簡單的想法就是降維後兩類樣本點之間的距離越遠越好,這樣才能將兩類樣本區分開來。
2、在這樣的目標下,假設樣本在目標超平面上的投影,並考察兩類樣本投影的均值點,求解一個超平面,使得這兩個均值點之間的距離最大。
LDA首先是為了分類服務的,因此只要找到一個投影方向 ,使得投影後的樣本盡可能按照原始類別分開 。 我仍不妨從一個簡單的二分類問題出發,有 兩個類別的樣本,兩類的均值分別為 ,我們希望投影之後兩類之間的距離盡可能大,距離表示為:
和 表示兩類中心在 方向上的投影向量,即 ,因此需要優化的問題為:
容易發現當 方向與 一致的時候,該距離達到最大值,例如對圖(a)的黃棕兩種類別的樣本點進行降維時, 若按照最大化兩類投影中心距離的准則,會將樣本點投影到下方的黑線上。但是原本可以被線性劃分的兩類樣本經過投影後有了一定程度的重疊,這顯然不能使我們滿意。我們希望得到的投影結果如圖(b)所示,雖然兩類的中心在投影之後的距離有所減小,但確使投影之後樣本的可區分性提高了。
仔細觀察兩種投影方式的區別,可以發現,在圖(b)中,投影後的樣本點似乎在每一類中分布得更為集中了,用數學化的語言描述就是每類內部的方差比(a)中更小。這就引出了 LDA的中心思想一一最大化類間距離和最小化類內距離 。
在前文中我們已經找到了使得類間距離盡可能大的投影方式,現在只需要同時優化類內方差,使其盡可能小。我們將整個數據集的類內方差定義為各個類分別的方差之和,將目標函數定義為類間距離和類內距離的比值,於是引出我們需要最大化的目標:
真中 為單位向量, 分別表示兩類投影後的方差:
因此 可以寫成:
定義類間散度矩陣為:
類內散度矩陣為:
則有:
我們要最大化 ,只需對 求偏導,並令導數等於零:
於是得出:
在二分類中 和 是兩個數,令 ,於是:
即:
從這里我們可以看出,我們最大化的目標對應了一個矩陣的特徵值。 於是LDA降維變成了一個求矩陣特徵向量的問題。 就對應矩陣 最大的特徵值,而投影方向就是這個特徵值對應的特徵向量 。
對於二分類這一問題,由於 ,因此 的方向始終與 一致,若只考慮 的方向而不考慮長度,可得 。
1、LDA和PCA最顯著的區別就是前者是有監督方法而後者是無監督方法,因此在應用中,對於數據中有標簽的應該使用LDA,對於數據中無標簽的則使用PCA。
2、數學推導上,兩者的區別在於,PCA並未考慮類之間的距離(因為PCA並未用到標簽信息),而是僅僅考慮了降維後數據的方差,從這個角度來說,PCA相當於在LDA中將所有數據當成一類去處理的特殊情形。因此我們可以看到兩者的數學推導也十分相似,最終目標都歸為求解一個矩陣的特徵值分解。
首先將LDA拓展到多類高維的情況以和問題PCA的求解對應。假設有 個類別,並需要最終將特徵降維至 維。我們要找到一個 維投影超平面 使得投影後的樣本點滿足LDA的目標一一最大化類間距菌和最小化類內距離。
回顧兩個散度矩陣,類內散度矩陣 在類別數增加時仍滿足定義。而之前兩類問題的類間散度矩陣 在類別增加後就無法按照原始定義。
考慮三類樣本的情況, 分別表示棕綠黃三類樣本的中心, 表示這三個中心的均值(也即全部樣本的中心), 表示第 類的類內散度。我們可以定義一個新的矩陣 表示全局整體的散度,稱為全局散度矩陣:
如果把全局散度定義為類內散度與類間散度之和,即 ,那麼類間散度矩陣可表示為:
其中 是第 個類別中的樣本個數, 是總的類別個數。根據LDA的原理,可以將最大化的目標定義為:
剩下的求解過程與之前二分類LDA相同。
至此我們得到了與PCA步驟類似,但具有多個類別標簽高維數據的LDA求解方法:
1)計算數據集中每個類別樣本的均值向量 ,及總體均值向量 。
2)計算類內散度矩陣 和全局散度矩陣 ,得到類間散度矩陣 。
3)對矩陣 進行特徵值分解,將特徵值從大到小排列。
4)取特徵值前 大的特徵值對應的特徵向量 ,通過以下映
射將 維樣本映射到 維:
從PCA和LDA兩種降維方法的求解過程來看,它們確實有著很大的相似性,但對應的原理卻有所區別。首先從目標出發, PCA選擇的是投影後數據方差最大的方向。由於它是無監督的,因此PCA假設方差越大,信息量越多,用主成分來表示原始數據可以去除冗餘的維度,達到降維。而LDA選擇的是投影後類內方差小、類間方差大的方向,其用到了類別標簽信息。為了找到數據中具有判別性的維度,使得原始數據在這些方向上投影後,不同類別盡可能區分開 。
舉一個簡單的例子,在語音識別中,我們想從一段音頻中提取出人的語音信號,這時可以使用PCA先進行降維,過濾掉一些固定頻率(方差較小)的背景雜訊。但如果我們的需求是從這段音頻中區分出聲音屬於哪個人,那麼我們應該使用LDA對數據進行降維,使每個人的語音信號具有區分性。
從應用的角度,我們可以掌握一個基本的原則一一 對無監督的任務使用PCA進行降維,對有監督的則應用LDA 。
❸ 11 - PLS,PCA-LDA, DT, ANN簡要介紹
此本來自自己碩士論文的綜述部分。
偏最小二乘法可以分為偏最小二乘回歸法(Partial least square regression, PLSR)與偏最小二乘法判別分析(Partial least square discriminate analysis, PLS-DA)。PLSR實現的主要思想是將自變數和因變數分別進行線性組合分析,再將求得的數據進行關聯分析,所以其為主成分分析、典型相關性分析與多元線性回歸建模的組合。PLS-DA是有監督的判別分析法,Gottfries等首先報道了PLS-DA使用,而後Barker與Rayens明確了其用於判別分析的理論基礎,並且對於其應用的優缺點由Brereton與Lloyd進一步闡釋(Gottfries et al 1995, Barker and Rayens 2003, Brereton and Lloyd 2014 )。其與PLSR區別是因變數是類別,而不是連續的變數,一般是在PLSR分析後加入一個邏輯判別函數如Sigmoid函數(在邏輯回歸判別中將詳述)。因為兩者前面分析部分相似,故這里主要介紹PLSR演算法。PLSR中自變數與因變數的基礎結構公式為:
X = TPT + E
Y = UQT + F
PLSR一般基於非線性迭代最小二乘演算法(NIPALS)建立。其步驟為(1)對自變數X和因變數Y同時提取各自的主成分t1(x1、x2...xn的線性組合)與u1(y1、y2...yn的線性組合),並且要求這兩個主成分相關性最大;(2)再進行X與Y分別對t1與u1的回歸,若方程達到了設置的滿意度,則停止計算;(3)否則,再利用t1對X解釋後剩餘的信息和u1對Y解釋後剩餘的信息重新按照(1)進行,再次循環,直到符合設定的閾值。最終X可能會提取到t1、t2...tn個主成分,Y提取到u1、u2…un,使Y的u組合對t1、t2...tn進行回歸,進而轉化成Y對x1、x2...xn的回歸方程(Wold et al 2001)。
PLSR是基於FT-MIR建立模型研究中使用最為廣泛和經典的演算法,上述關於基於FT-MIR檢測牛奶脂肪酸、蛋白質及氨基酸和抗生素殘留的定量模型研究中均使用了PLSR演算法,可見其應用之普遍。PLS-DA已在食品分析中的產品認證、醫學診斷中的疾病分類和代謝組分析中進行廣泛應用,並且Gromski等在綜述代謝組的分析中,將其和隨機森林與支持向量機進行了比較(Gromski et al 2015, Lee et al 2018)。
PLS的優點:(1)能處理樣本量遠小於特徵屬性數量的數據;(2)能處理特徵屬性間存在多重共線性的問題;(3)建立的模型時包含自變數與因變數的信息。其缺點有:(1)不能很好的處理非線性問題;(2)容易過擬合,需注意主成分數的選擇。
主成分分析(Principal Component Analysis,PCA)是一種無監督的降維分析方法。PCA降維的基本原則是使降維後方差最大與損失最小,如圖1-2。其實現的基本過程:(1)對所有樣本進行中心化處理;(2)計算樣本的協方差矩陣;(3)對協方差矩陣進行特徵值分解;(4)對得到的特徵值進行排序,取前n個組成新矩陣;(5)以新矩陣來代替原來樣本的特徵(Abdi and Williams 2010, Jolliffe and Cadima 2016)。
線性判別分析(Linear discriminat analysis,LDA)是一種有監督的降維與判別分析方法。LDA降維原則是類別內方差最小,類別間方差最大,這樣的特點更有利於進行判別分析(Anandkumar et al 2015)。其實現的基本過程為(1)計算樣本各類別內的類內散度矩陣Sw;(2)計算樣本各類別間的散度矩陣Sb;(3)對Sw做奇異分解,得到Sw -1 ;(4)對Sw -1 Sb做特徵分解;(5)取上一步得到的前n特徵向量以最大似然法求得各類別的均值和方差做後續的判別分析。
LDA不適用自變數遠遠大於樣本的情況,而PCA可以,故這里將兩個演算法進行聯用,先以PCA進行降維,再以LDA進行判別分析(Yang and Yang 2003)。
PCA-LDA的優點:(1)兩個演算法的聯用可以同時對原數據進行降維和判別分析;(2)LDA採用的是各類均值,演算法較優。其缺點有(1)只適合符合高斯分布的樣本數據分析;(2)可能會有過擬合的風險。
決策樹是基礎的分類和回歸方法,本研究主要集中在其用於分類上。決策樹是通過樹狀結構對具有特徵屬性的樣本進行分類。每一個決策樹都包括根節點(第一個特徵屬性),內部節點(其他特徵屬性)以及葉子節點(類別),通用的為每個內部節點有兩個分支(Kaminski et al 2018)。其實現的基本步驟:(1)在所有屬性中選擇最優屬性,通過其將樣本分類;(2)將分類的樣本再通過另一個特徵屬性再次分類,一直循環直到將樣本分到各葉子節點;(3)對生成的樹進行剪枝(包含預剪枝與後剪枝)。決策樹選擇特徵屬性的演算法不同會有不同結果,典型演算法包括:CART演算法(Breiman et al 1984)、ID3演算法(Quinlan 1986)、C4.5演算法(Quinlan 1992)等,但這些方法生成的過程相似。
CART採用基尼指數最小化原則,進行特徵選擇,遞歸地生成二叉樹,該演算法只能對特徵進行二分。ID3演算法在各個節點上採用信息增益來選擇特徵,每一次選擇的特徵均使信息增益最大,逐步構建決策樹,但缺點是其會選擇取值較多的特徵,而C4.5演算法採用信息增益比選擇特徵,解決了ID3的缺點。
DT的優點:(1)運行速度相對較快;(2)可同時處理不同類型的數據,基本不需要預處理;(3)結果容易解釋,並可進行可視化。其缺點:(1)容易過擬合,導致泛化能力不強;(2)不支持在線學習,若有新樣本,DT需要全部重建;(3)當各類別數據樣本不平衡時,結果會偏向有更多數值的特徵;(4)不能處理樣本特徵屬性之間的相關性(James et al 2013, Painsky and Rosset 2015)。
人工神經網路是以神經元為單位模仿生物神經網路的結構與功能的數學演算法模型(Marcel and Sander 2018)。其可以進行線性與非線性的判別分析,屬於有監督的學習分類法,主要分為前饋型神經網路、反饋型神經網路與自組織神經網路。
單位神經元如圖1-3中A,一般有多個輸入的「樹突」,再分別給予不同的權重求和,與閾值比較,達到閾值的通過激活函數求出輸出數據,最後進行輸出。激活函數f通常分為三類:閾值函數、分段函數、雙極性連續函數。
這里以經典的單隱層神經網路為例進行講解,如圖1-3中B。其輸入層包含三個神經元,隱含層有四個神經元,輸出層有兩個神經元。其運算過程為由輸入層輸入數據,隨機設定權重和閾值,通過隱藏層計算再傳遞到輸出層,輸出層會根據設定的期望進行判斷,如果不符合,則返回重新改變權重和閾值,進入循環,直到符合設定的期望再停止運算,這樣就能得到模型的權重和閾值,可對新數據進行判別,這種運演算法即為常見的反饋型神經網路(Tu 1996)。多層神經網路屬於深度學習,以卷積神經網路為基礎進行構建。
ANN的優點:(1)能夠自主學習;(2)能解決線性與非線性的問題;(3)可處理因變數之間的相互作用。其缺點:(1)需要設置大量的參數進行約束;(2)結果解釋性差,為黑箱演算法;(3)計算學習時間長;(4)容易過擬合(Tu 1996)。
❹ 為什麼說LDA是降維分類技術
線性判別式分析(Linear Discriminant Analysis, LDA),也叫做Fisher線性判別(Fisher Linear Discriminant ,FLD),是模式識別的經典演算法,它是在1996年由Belhumeur引入模式識別和人工智慧領域的。
線性鑒別分析的基本思想是將高維的模式樣本投影到最佳鑒別矢量空間,以達到抽取分類信息和壓縮特徵空間維數的效果,投影後保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性。因此,它是一種有效的特徵抽取方法。使用這種方法能夠使投影後模式樣本的類間散布矩陣最大,並且同時類內散布矩陣最小。就是說,它能夠保證投影後模式樣本在新的空間中有最小的類內距離和最大的類間距離,即模式在該空間中有最佳的可分離性。
LDA是監督的,夠得上你「分類」這個詞
❺ 常用降維方法之PCA 和 LDA
PCA本質上是將方差最大的方向作為主要特徵,並且在各個正交方向上將數據「離相關」,也就是讓它們在不同正交方向上沒有相關性。而方差最大的那個維度是主成分。
PCA是比較常見的線性降維方法,通過線性投影將高維數據映射到低維數據中,所期望的是在投影的維度上,新特徵自身的方差盡量大,方差越大特徵越有效,盡量使產生的新特徵間的相關性越小。
PCA演算法的具體操作為對所有的樣本進行中心化操作,計算樣本的協方差矩陣,然後對協方差矩陣做特徵值分解,取最大的n個特徵值對應的特徵向量構造投影矩陣。
再舉個栗子:
下面舉一個簡單的例子,說明PCA的過程。
假設我們的數據集有10個二維數據(2.5,2.4), (0.5,0.7), (2.2,2.9), (1.9,2.2), (3.1,3.0), (2.3, 2.7), (2, 1.6), (1, 1.1), (1.5, 1.6), (1.1, 0.9),需要用PCA降到1維特徵。
首先我們對樣本中心化,這里樣本的均值為(1.81, 1.91),所有的樣本減去這個均值向量後,即中心化後的數據集為(0.69, 0.49), (-1.31, -1.21), (0.39, 0.99), (0.09, 0.29), (1.29, 1.09), (0.49, 0.79), (0.19, -0.31), (-0.81, -0.81), (-0.31, -0.31), (-0.71, -1.01)。
現在我們開始求樣本的協方差矩陣,由於我們是二維的,則協方差矩陣為:
對於我們的數據,求出協方差矩陣為:
求出特徵值為(0.0490833989, 1.28402771),對應的特徵向量分別為:
由於最大的k=1個特徵值為1.28402771,對於的k=1個特徵向量為 則我們的W=
我們對所有的數據集進行投影 得到PCA降維後的10個一維數據集為:(-0.827970186, 1.77758033, -0.992197494, -0.274210416, -1.67580142, -0.912949103, 0.0991094375, 1.14457216, 0.438046137, 1.22382056)
在上面的PCA演算法中,我們假設存在一個線性的超平面,可以讓我們對數據進行投影。但是有些時候,數據不是線性的,不能直接進行PCA降維。這里就需要用到和支持向量機一樣的核函數的思想,先把數據集從n維映射到線性可分的高維N>n,然後再從N維降維到一個低維度n', 這里的維度之間滿足n'<n<N。
使用了核函數的主成分分析一般稱之為核主成分分析(Kernelized PCA, 以下簡稱KPCA。假設高維空間的數據是由n維空間的數據通過映射ϕ產生。
則對於n維空間的特徵分解:
映射為:
通過在高維空間進行協方差矩陣的特徵值分解,然後用和PCA一樣的方法進行降維。一般來說,映射ϕ不用顯式的計算,而是在需要計算的時候通過核函數完成。由於KPCA需要核函數的運算,因此它的計算量要比PCA大很多。
這里對PCA演算法做一個總結。作為一個非監督學習的降維方法,它只需要特徵值分解,就可以對數據進行壓縮,去噪。因此在實際場景應用很廣泛。為了克服PCA的一些缺點,出現了很多PCA的變種,比如第六節的為解決非線性降維的KPCA,還有解決內存限制的增量PCA方法Incremental PCA,以及解決稀疏數據降維的PCA方法Sparse PCA等。
PCA演算法的主要優點有:
LDA(線性判別分析,Linear Discriminant Analysis)是另一種常用的降維方法,它是有監督的。LDA在模式識別領域(比如人臉識別,艦艇識別等圖形圖像識別領域)中有非常廣泛的應用,因此我們有必要了解下它的演算法原理。這里需要注意的是,此處的LDA與文本主題模型中的LDA(隱含狄利克雷分布,Latent Dirichlet Allocation)並不相同,他是一種處理文檔的主題模型。
LDA是一種監督學習的降維技術,也就是說它的數據集的每個樣本是有類別輸出的。這點和PCA不同。PCA是不考慮樣本類別輸出的無監督降維技術。
LDA的思想可以用一句話概括,就是「投影後類內方差最小,類間方差最大」。
什麼意思呢? 我們要將數據在低維度上進行投影,投影後希望每一種類別數據的投影點盡可能的接近,而不同類別的數據的類別中心之間的距離盡可能的大。
可能還是有點抽象,我們先看看最簡單的情況。假設我們有兩類數據 分別為紅色和藍色,如下圖所示,這些數據特徵是二維的,我們希望將這些數據投影到一維的一條直線,讓每一種類別數據的投影點盡可能的接近,而紅色和藍色數據中心之間的距離盡可能的大。
以上就是使用LDA進行降維的演算法流程。實際上LDA除了可以用於降維以外,還可以用於分類。一個常見的LDA分類基本思想是假設各個類別的樣本數據符合高斯分布,這樣利用LDA進行投影後,可以利用極大似然估計計算各個類別投影數據的均值和方差,進而得到該類別高斯分布的概率密度函數。當一個新的樣本到來後,我們可以將它投影,然後將投影後的樣本特徵分別帶入各個類別的高斯分布概率密度函數,計算它屬於這個類別的概率,最大的概率對應的類別即為預測類別。
LDA用於降維,和PCA有很多相同,也有很多不同的地方,因此值得好好的比較一下兩者的降維異同點。
這點可以從下圖形象的看出,在某些數據分布下LDA比PCA降維較優。
當然,某些某些數據分布下PCA比LDA降維較優,如下圖所示:
LDA演算法既可以用來降維,又可以用來分類,但是目前來說,主要還是用於降維。在我們進行圖像識別圖像識別相關的數據分析時,LDA是一個有力的工具。下面總結下LDA演算法的優缺點。
LDA演算法的主要優點有:
參考文章: 劉建平老師的博客園
❻ 降維是什麼意思
意思如下:
維,在幾何學上指空間獨立而互相正交的方位數,通常的空間有三維,平面或曲面有二維,直線或曲線只有一維。
在商業領域,企業的競爭力可以體現在若干個維度的累加上,這些維度包括核心技術、成本優勢、管理優勢、人才優勢、地域優勢等多個方面。
降維就是把競爭對手拉入到一個更低維度的競爭模式中,讓對手因為失去原有的競爭力而無所適從。
降維方法
降維方法分為線性和非線性降維,非線性降維又分為基於核函數和基於特徵值的方法。
1、線性降維方法:PCA 、ICA LDA、LFA、LPP(LE的線性表示)
2、非線性降維方法:
(1)基於核函數的非線性降維方法:KPCA 、KICA、KDA
(2)基於特徵值的非線性降維方法(流型學習):ISOMAP、LLE、LE、LPP、LTSA、MVU
方法介紹
1、LLE(Locally Linear Embedding)演算法(局部線性嵌入):
每一個數據點都可以由其近鄰點的線性加權組合構造得到。
演算法的主要步驟分為三步:
(1)尋找每個樣本點的k個近鄰點(k是一個預先給定的值);
(2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣;
(3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值,定義一個誤差函數。
❼ 三種常用降維方法的思想總結
LDA降維和PCA的不同是LDA是有監督的降維,其原理是將特徵映射到低維上,原始數據的類別也能清晰的反應在低維的數據上,也就是低維的數據也可以用來判別分類。
我們先看看二維的情況,我們希望找到一個向量,使得數據點映射到這個向量上後,兩個類間的距離盡可能,兩個類內的樣本的距離盡可能小。這樣就得到了一個目標函數,分子是投影後兩個類間均值的差的平方,我們希望這個值盡可能大,分母是投影後的類的散列值的和,是少除以樣本數量的方差,進一步化簡分子得到投影向量的轉置乘以投影前的類均值差向量的外積再乘以投影向量,分母是投影向量的轉置乘以投影前的類間散列矩陣的和再乘以投影向量,此時我們需要求使得目標函數最小的投影向量,由於投影向量擴大或縮小多少倍,目標函數值不變,那麼我們可以讓分母的模長為1,此時可以使用拉格朗日乘子法,最後求得:當類間散列矩陣的和存在逆矩陣時,投影向量就是類間散列矩陣的和的逆矩陣和投影前的類均值差向量的外積的特徵向量。進一步的,我們化簡等式左邊得到類間散列矩陣的逆矩陣乘以投影前類間均值向量的差乘以一個常數,那麼由於投影向量可以放縮常數倍不影響結果,我們約掉兩邊的常數,得到投影向量等於投影前類均值向量的差左乘散列矩陣的逆矩陣,這就是fisher提出的判別分析
PCA是將原始樣本投影到低維的空間上,使得樣本的絕大部分信息得以保留,並且特徵的維度降低使得模型不易過擬合。思想是:對於原始空間中的m維向量而言,找到k個投影向量使得這m維向量投影到這k個投影向量上的方差最大,保留原始的樣本信息最多,我們首先可以看看找第一個向量,使得在這個方向上的投影方差最大。步驟如下:
1.在投影之前,我們對數據做中心化處理,使得原始數據均值為0
2.計算中心化後的樣本的協方差矩陣,這是個m*m維的矩陣,m表示原始特徵的數目。第i行第j列的元素表示數據中第i列和第j列的協方差
3.計算協方差矩陣的特徵值和特徵向量,特徵向量是單位向量,模長為1,
4.選擇帶有最大特徵值的k個特徵向量
5.計算k個最大特徵值對應的k個特徵,對於每一個特徵,都是用原數據矩陣(n行m列)乘以對應的特徵向量(m行1列,m是原始變數的數目):因此最後的特徵有n行一列,表示每個樣本一個特徵值
對數據進行中心化和歸一化,然後將其投影到某個向量上,計算這一維上的數據點的方差,經過化簡就是投影向量的轉置乘以原始數據的協方差矩陣再乘以投影向量,前提是這個投影向量是單位向量,然後我們令這個方差λ最大,得到最大方差時對應的那個投影向量就是第一個主成分,那麼這個向量如何求解呢?因為這個投影向量是單位向量,那麼等式兩邊左乘以投影向量,得到了λu=Σu,則說明這個投影向量u的方向其實就是這個協方差矩陣的特徵向量,那麼最大方差λ對應的就是Σ的最大特徵值對應的特徵向量的方向,就是第一主成分的方向,第二大特徵值對應的特徵向量就是第二主成分的方向
數據的中心化並不是必要的,但是卻方便了表示和計算,PCA是計算樣本協方差矩陣的,因此中心化或者中心化並不改變特徵向量的方向或者特徵值的大小,因此即使不中心化,PCA一樣的起作用,然而如果你中心化數據了,那麼樣本的協方差矩陣的數學表示就會得以簡化,如果你的數據點就是你的數據矩陣的列,那麼協方差矩陣就表示為xx',多麼簡便啊!技術上,PCA是包括數據中心化這一步的,但是那隻是為了計算協方差矩陣,然後對協方差矩陣做特徵值分解,得到各個特徵值和特徵向量
數據的歸一化也不是必須的,如果某些變數有很大或者很小的方差,那麼PCA將會傾向於這些大的方差的變數,例如如果你增加了一個變數的方差,也許這個變數對第一個主成分會從很小的影響到起主導性的作用,因此如果你想要PCA獨立於這樣的變化,歸一化可以做到,當然,如果你的變數在那個規模上很重要,那麼你可以不歸一化,歸一化在PCA中是很重要的,因為PCA是一個方差最大化的實驗,它就是投影你的原始數據到方差最大化的方向上
(1)如果原始的特徵是高度相關的,PCA的結果是不穩定的;
(2)新的特徵是原始特徵的線性組合,所以缺乏解釋性。
(3)原始數據不一定要是多元高斯分布的,除非你使用這個技術來預測性的建模去計算置信區間
矩陣乘法的作用是線性變換,對一個向量乘以一個矩陣,可以使得這個向量發生伸縮、切變和旋轉。我們都知道對稱矩陣的特徵向量是相互正交的,給定一個對稱矩陣M,可以找到一些這樣的正交向量v,使得Mv=λv,即這個矩陣M對向量做了拉伸變換,λ是拉伸的倍數。那麼對於普通的矩陣呢,才能讓一個原來就是相互垂直的網格平面(orthogonal grid), 線性變換成另外一個網格平面同樣垂直呢?
對於一個正交矩陣,其對應的變換叫做正交變換,這個變換的作用是不改變向量的尺寸和向量間的夾角。正交變換中的旋轉變換只是將變換向量用另一組正交基表示,在這個過程中並沒有對向量做拉伸,也不改變向量的空間位置,只是將原坐標系旋轉得到新的坐標系,那麼這個旋轉矩陣怎麼求呢?對於二維空間中的某個向量而言,其經過旋轉變換的結果就是從用一組坐標系表示到用另外一組坐標系表示,新的坐標系下的坐標各個分量相當於是原坐標系下的坐標的各個分量在新的坐標系的兩個正交基下的投影,或者是相當於將原來的二維向量經過旋轉到了新的坐標,因此相當於對向量左乘一個旋轉矩陣,求出這個矩陣就是旋轉變換的矩陣。剛剛說正交變換不改變向量的空間位置是絕對的,但是坐標是相對的,從原來的坐標系的基向量位置看這個二維向量,到從新的坐標系下看這個向量的坐標是變化的
矩陣乘以一個向量的結果仍是同維數的一個向量。因此,矩陣乘法對應了一個變換,把一個向量變成同維數的另一個向量。
對特定的向量,經過一種方陣變換,經過該變換後,向量的方向不變(或只是反向),而只是進行伸縮變化(伸縮值可以是負值,相當於向量的方向反向)?這就是相當於特徵向量的定義
特徵向量的幾何含義是:特徵向量通過方陣A變換只進行伸縮,而保持特徵向量的方向不變。特徵值表示的是這個特徵到底有多重要,類似於權重,而特徵向量在幾何上就是一個點,從原點到該點的方向表示向量的方向。
一個變換(或者說矩陣)的特徵向量就是這樣一種向量,它經過這種特定的變換後保持方向不變,只是進行長度上的伸縮而已。特徵值分解則是對旋轉和縮放兩種效應的歸並。因為特徵值分解中的A為方陣,顯然是不存在投影效應的。或者說,我們找到了一組基(特徵向量們),在這組基下,矩陣的作用效果僅僅是縮放。即矩陣A將一個向量從x這組基的空間旋轉到x這組基的空間上,並在每個方向進行了縮放,由於前後兩組基都是x,即沒有進行旋轉和投影。
詳細分析特徵值分解的過程:首先由於特徵向量是正交的,特徵向量組成的矩陣是正交方陣,兩邊同時右乘以這個方陣的逆矩陣,可以得到矩陣A的表達式為A=UΛU',兩邊同時右乘一個向量,相當於對這個向量左乘矩陣A,對向量做旋轉或拉伸的變換。這個變換的過程分為三個映射:第一個是將向量x進行了旋轉,它將x用新的坐標系來表示;第二個變換是拉伸變化,對x的每一維分量都進行了特徵值大小的拉伸或縮小變換;第三個是對x做第一個變換的逆變換,因為是第一個矩陣的逆矩陣,也是旋轉變換。在第二個拉伸變換中,可以看出,如果矩陣A不是滿秩的,即有的特徵值為0,那麼這里相當於將x映射到了m維空間的子空間(m是矩陣A的維數m*m),此時矩陣A是一個正交投影矩陣,它將m維向量x映射到了它的列空間。如果A是二維的,那麼可以在二維平面上可以找到一個矩形,使得這個矩形經過A變換後還是矩形
在特徵值分解中,矩陣A要求是方陣,那麼對於一個任意的矩陣m*n,能否找到一組正交基使得經過它變換後還是正交基?這就是SVD的精髓所在
A=UΣU',我們來分析矩陣A的作用: 首先是旋轉 ,U的列向量是一組標准正交基,V也是,這表示我們找到了兩組基。A的作用是將一個向量從V這組正交基向量空間旋轉到U這組正交基向量空間; 其次是縮放 ,當V對向量x做了旋轉以後,相當於把向量x旋轉使其用V這組正交基表示坐標,然後Σ對向量x的每個分量做了縮放,縮放的程度就是Σ的主對角線上的元素,是奇異值; 最後是投影 ,如果U的維數小於V的維數,那麼這個過程還包含了投影
現在的目的是找一組正交基,使得經過A矩陣變換後仍然是一組正交基,假設已經找到這樣一組正交基,那麼對這組正交基經過A變換,如何使其仍然是一組正交基呢?只要使得原來的正交基是A'A的特徵向量即可,|AVi|就是A'A的特徵值的開方,也就是奇異值,然後我們求AVi的單位向量Ui,這些Ui也都是正交的,那麼我們就找到了兩組正交基使得從V這組正交基變換到U這組正交基,V稱作右奇異向量,U稱作左奇異向量,AVi的模是奇異值,我們對V1,...,Vk進行擴充Vk+1,..,Vn(Vk+1,..,Vn是Ax=0的零空間)使得V1,...,Vn是n維空間中的一組正交基,對U1,...,Uk進行擴充Uk+1,...,Um,使得U1,..,Um是m維空間中的一組正交基,這個k值是矩陣A的秩,當A是滿秩時,分解後的矩陣相乘等於A,k越接近於n,則分解後的矩陣相乘結果越接近於A
對矩陣A的映射過程分析:如果在n維空間中找到一個超矩形,使其都落在A'A的特徵向量的方向上,那麼經過A變換後的形狀仍為超矩形。Vi是A'A的特徵向量,Ui是AA'的特徵向量,也是AVi的單位向量,σ是A'A的特徵值的開方,根據這個公式可以計算出矩陣A的奇異值分解矩陣
SVD是將一個相互垂直的網格變換到另外一個相互垂直的網格,按照上面的對於U,V的定位,可以實現用矩陣A將一個向量變換的過程,首先將向量x寫成用V這組正交基表示的形式,然後用矩陣A左乘向量x,並帶入AVi=σiUi,最後可以得到A的分解式,不是矩陣分解式,而是向量分解式,可以看出,如果有的奇異值很小甚至為0,那麼本來有n項相加,就最後只有奇異值不為0的項相加了,假如有k項相加,那麼k越接近於n最後A分解的結果越接近於A
(1)可以用來減少元素的存儲
(2)可以用來降噪:去掉奇異值小的項,奇異值小的我們認為是含有樣本重要信息很少,都是雜訊,因此就把這些信息少的給去掉了
(3)數據分析:比如說我們有一些樣本點用於建模,我們通過SVD將數據裡面的奇異值小的都去掉了,最後得到了分解後的數據,用來做分析,更加准確
我們知道PCA裡面,我們對變數進行降維實際上就相當於對數據矩陣Am*n右乘一個矩陣Pn*r,就得到了Am*r,表示每個樣本的特徵向量只有r維的,和這個矩陣P代表了r個列向量是數據矩陣A的協方差矩陣n*n的最大的r的特徵值對應r個特徵向量,都是n維的。和SVD相比,將SVD的表達式兩邊同時右乘一個Vn*r,這樣等式右邊就Vr*n和Vn*r相乘是單位向量,因為Vn*r是A'A的r個特徵向量,是前r個不為0的特徵值對應的特徵向量,且由於A'A是對稱的,那麼各個特徵向量之間是正交的,這樣就得到了剛剛PCA推導出來的公式
同理,對數據矩陣Am*n左乘一個矩陣Pr*m,就得到了Ar*n,表示每個特徵對應的樣本只有r個,矩陣P代表了r個m維向量,每個向量是讓每個特徵對應的樣本向量所要投影的方向向量。和SVD相比,將SVD兩邊同時左乘以一個矩陣Ur*m,就得到了Ar*n,即在行方向上進行了降維,等式右邊是Ur*m和Um*r相乘為單位向量,因為Um*r是AA'的特徵向量,是AA'的前r個不為0的特徵值對應的特徵向量,是m維的,由於AA'是對稱矩陣,那麼各個特徵向量之間是正交的,這樣就得到了剛剛PCA推導出來的公式
可以看出:
--PCA幾乎可以說是對SVD的一個包裝,如果我們實現了SVD,那也就實現了PCA了
--而且更好的地方是,有了SVD,我們就可以得到兩個方向的PCA,如果我們對A』A進行特徵值的分解,只能得到一個方向的PCA。
❽ LDA的原理
LDA是一種基於有監督學習的降維方式,將數據集在低維度的空間進行投影,要使得投影後的同類別的數據點間的距離盡可能的靠近,而不同類別間的數據點的距離盡可能的遠。
❾ 現有矩陣降維常用方法
降維方法分為線性核非線性降維,非線性降維又分為基於核函數和基於特徵值的方法。
線性降維方法:PCA ICALDA LFA LPP(LE的線性表示)
於核函數的非線性降維方法:KPCA KICAKDA
基於特徵值的非線性降維方法(流型學習):ISOMAP LLE LE LPP LTSA MVU
❿ 降維演算法二:LDA(Linear Discriminant Analysis)
學習分類演算法,線性分類器最簡單的就是LDA,它可以看做是簡化版的SVM,如果想理解SVM這種分類器,那理解LDA就是很有必要的了。
談到LDA,就不得不談談PCA,PCA是一個和LDA非常相關的演算法,從推導、求解、到演算法最終的結果,都有著相當的相似。
本次的內容主要是以推導數學公式為主,都是從演算法的物理意義出發,然後一步一步最終推導到最終的式子,LDA和PCA最終的表現都是解一個矩陣特徵值的問題,但是理解了如何推導,才能更深刻的理解其中的含義。本次內容要求讀者有一些基本的線性代數基礎,比如說特徵值、特徵向量的概念,空間投影,點乘等的一些基本知識等。除此之外的其他公式、我都盡量講得更簡單清楚。
LDA的全稱是Linear Discriminant Analysis(線性判別分析),是一種 supervised learning 。有些資料上也稱為是Fisher』s Linear Discriminant,因為它被Ronald Fisher發明自1936年,Discriminant這次詞我個人的理解是,一個模型,不需要去通過概率的方法來訓練、預測數據,比如說各種貝葉斯方法,就需要獲取數據的先驗、後驗概率等等。LDA是在 目前機器學習、數據挖掘領域經典且熱門的一個演算法 ,據我所知,網路的商務搜索部裡面就用了不少這方面的演算法。
LDA的原理是,將帶上標簽的數據(點),通過投影的方法,投影到維度更低的空間中,使得投影後的點,會形成按類別區分,一簇一簇的情況,相同類別的點,將會在投影後的空間中更接近。要說明白LDA,首先得弄明白線性分類器( Linear Classifier ):因為LDA是一種線性分類器。對於K-分類的一個分類問題,會有K個線性函數:
上式實際上就是一種投影,是將一個高維的點投影到一條高維的直線上,LDA最求的目標是,給出一個標注了類別的數據集,投影到了一條直線之後,能夠使得點盡量的按類別區分開,當k=2即二分類問題的時候,如下圖所示:
紅色的方形的點為0類的原始點、藍色的方形點為1類的原始點,經過原點的那條線就是投影的直線,從圖上可以清楚的看到,紅色的點和藍色的點被原點明顯的分開了,這個數據只是隨便畫的,如果在高維的情況下,看起來會更好一點。下面我來推導一下二分類LDA問題的公式:
假設用來區分二分類的直線(投影函數)為:
LDA分類的一個目標是使得不同類別之間的距離越遠越好,同一類別之中的距離越近越好,所以我們需要定義幾個關鍵的值。
類別i的原始中心點為:(Di表示屬於類別i的點)
類別i投影後的中心點為:
衡量類別i投影後,類別點之間的分散程度(方差)為:
最終我們可以得到一個下面的公式,表示LDA投影到w後的損失函數:
分類的目標是, 使得類別內的點距離越近越好(集中),類別間的點越遠越好。 分母表示每一個類別內的方差之和,方差越大表示一個類別內的點越分散,分子為兩個類別各自的中心點的距離的平方,我們最大化J(w)就可以求出最優的w了。想要求出最優的w,可以使用拉格朗日乘子法,但是現在我們得到的J(w)裡面,w是不能被單獨提出來的,我們就得想辦法將w單獨提出來。
我們定義一個投影前的各類別分散程度的矩陣,這個矩陣看起來有一點麻煩,其實意思是,如果某一個分類的輸入點集Di裡面的點距離這個分類的中心店mi越近,則Si裡面元素的值就越小,如果分類的點都緊緊地圍繞著mi,則Si裡面的元素值越更接近0.
同樣的將J(w)分子化為:
我們希望 分母越小越好,分子越大越好 :
分母小,則每個類內部數據點比較聚集;
分子大,則兩個類別的距離較遠。
所以需要找出一個 W 使 J(W) 的值最大。
這樣就可以用最喜歡的拉格朗日乘子法了,但是還有一個問題,如果分子、分母是都可以取任意值的,那就會使得有無窮解,我們將分母限制為長度為1(這是用拉格朗日乘子法一個很重要的技巧,在下面將說的PCA裡面也會用到,如果忘記了,請復習一下高數),並作為拉格朗日乘子法的限制條件,帶入得到:
這樣的式子就是一個求特徵值的問題了。
對於N(N>2)分類的問題,我就直接寫出下面的結論了:
二者都有降維的作用。