三種常用降維方法的思想總結

一.判別分析降維

? ? ?LDA降維和PCA的不同是LDA是有監督的降維,其原理是將特征映射到低維上,原始數據的類別也能清晰的反應在低維的數據上,也就是低維的數據也可以用來判別分類。

? ? ?我們先看看二維的情況,我們希望找到一個向量,使得數據點映射到這個向量上后,兩個類間的距離盡可能,兩個類內的樣本的距離盡可能小。這樣就得到了一個目標函數,分子是投影后兩個類間均值的差的平方,我們希望這個值盡可能大,分母是投影后的類的散列值的和,是少除以樣本數量的方差,進一步化簡分子得到投影向量的轉置乘以投影前的類均值差向量的外積再乘以投影向量,分母是投影向量的轉置乘以投影前的類間散列矩陣的和再乘以投影向量,此時我們需要求使得目標函數最小的投影向量,由于投影向量擴大或縮小多少倍,目標函數值不變,那么我們可以讓分母的模長為1,此時可以使用拉格朗日乘子法,最后求得:當類間散列矩陣的和存在逆矩陣時,投影向量就是類間散列矩陣的和的逆矩陣和投影前的類均值差向量的外積的特征向量。進一步的,我們化簡等式左邊得到類間散列矩陣的逆矩陣乘以投影前類間均值向量的差乘以一個常數,那么由于投影向量可以放縮常數倍不影響結果,我們約掉兩邊的常數,得到投影向量等于投影前類均值向量的差左乘散列矩陣的逆矩陣,這就是fisher提出的判別分析

二.PCA降維

1.PCA的步驟:

? ? ? 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行一列,表示每個樣本一個特征值

?2. PCA的過程

? ? ? 對數據進行中心化和歸一化,然后將其投影到某個向量上,計算這一維上的數據點的方差,經過化簡就是投影向量的轉置乘以原始數據的協方差矩陣再乘以投影向量,前提是這個投影向量是單位向量,然后我們令這個方差λ最大,得到最大方差時對應的那個投影向量就是第一個主成分,那么這個向量如何求解呢?因為這個投影向量是單位向量,那么等式兩邊左乘以投影向量,得到了λu=Σu,則說明這個投影向量u的方向其實就是這個協方差矩陣的特征向量,那么最大方差λ對應的就是Σ的最大特征值對應的特征向量的方向,就是第一主成分的方向,第二大特征值對應的特征向量就是第二主成分的方向

? ? ? ?數據的中心化并不是必要的,但是卻方便了表示和計算,PCA是計算樣本協方差矩陣的,因此中心化或者中心化并不改變特征向量的方向或者特征值的大小,因此即使不中心化,PCA一樣的起作用,然而如果你中心化數據了,那么樣本的協方差矩陣的數學表示就會得以簡化,如果你的數據點就是你的數據矩陣的列,那么協方差矩陣就表示為xx',多么簡便啊!技術上,PCA是包括數據中心化這一步的,但是那只是為了計算協方差矩陣,然后對協方差矩陣做特征值分解,得到各個特征值和特征向量

? ? ? 數據的歸一化也不是必須的,如果某些變量有很大或者很小的方差,那么PCA將會傾向于這些大的方差的變量,例如如果你增加了一個變量的方差,也許這個變量對第一個主成分會從很小的影響到起主導性的作用,因此如果你想要PCA獨立于這樣的變化,歸一化可以做到,當然,如果你的變量在那個規模上很重要,那么你可以不歸一化,歸一化在PCA中是很重要的,因為PCA是一個方差最大化的實驗,它就是投影你的原始數據到方差最大化的方向上

3.PCA的特點

(1)如果原始的特征是高度相關的,PCA的結果是不穩定的;

(2)新的特征是原始特征的線性組合,所以缺乏解釋性。

(3)原始數據不一定要是多元高斯分布的,除非你使用這個技術來預測性的建模去計算置信區間

三.奇異值分解

1.線性變換

? ? ? ?矩陣乘法的作用是線性變換,對一個向量乘以一個矩陣,可以使得這個向量發生伸縮、切變和旋轉。我們都知道對稱矩陣的特征向量是相互正交的,給定一個對稱矩陣M,可以找到一些這樣的正交向量v,使得Mv=λv,即這個矩陣M對向量做了拉伸變換,λ是拉伸的倍數。那么對于普通的矩陣呢,才能讓一個原來就是相互垂直的網格平面(orthogonal grid), 線性變換成另外一個網格平面同樣垂直呢?

? ? ? ?對于一個正交矩陣,其對應的變換叫做正交變換,這個變換的作用是不改變向量的尺寸和向量間的夾角。正交變換中的旋轉變換只是將變換向量用另一組正交基表示,在這個過程中并沒有對向量做拉伸,也不改變向量的空間位置,只是將原坐標系旋轉得到新的坐標系,那么這個旋轉矩陣怎么求呢?對于二維空間中的某個向量而言,其經過旋轉變換的結果就是從用一組坐標系表示到用另外一組坐標系表示,新的坐標系下的坐標各個分量相當于是原坐標系下的坐標的各個分量在新的坐標系的兩個正交基下的投影,或者是相當于將原來的二維向量經過旋轉到了新的坐標,因此相當于對向量左乘一個旋轉矩陣,求出這個矩陣就是旋轉變換的矩陣。剛剛說正交變換不改變向量的空間位置是絕對的,但是坐標是相對的,從原來的坐標系的基向量位置看這個二維向量,到從新的坐標系下看這個向量的坐標是變化的

2.特征值分解

? ? ? 矩陣乘以一個向量的結果仍是同維數的一個向量。因此,矩陣乘法對應了一個變換,把一個向量變成同維數的另一個向量。

? ? ? 對特定的向量,經過一種方陣變換,經過該變換后,向量的方向不變(或只是反向),而只是進行伸縮變化(伸縮值可以是負值,相當于向量的方向反向)?這就是相當于特征向量的定義

? ? ?特征向量的幾何含義是:特征向量通過方陣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變換后還是矩形

3.奇異值分解

? ? ? 在特征值分解中,矩陣A要求是方陣,那么對于一個任意的矩陣m*n,能否找到一組正交基使得經過它變換后還是正交基?這就是SVD的精髓所在

? ? ? A=UΣU',我們來分析矩陣A的作用:首先是旋轉,U的列向量是一組標準正交基,V也是,這表示我們找到了兩組基。A的作用是將一個向量從V這組正交基向量空間旋轉到U這組正交基向量空間;其次是縮放,當V對向量x做了旋轉以后,相當于把向量x旋轉使其用V這組正交基表示坐標,然后Σ對向量x的每個分量做了縮放,縮放的程度就是Σ的主對角線上的元素,是奇異值;最后是投影,如果U的維數小于V的維數,那么這個過程還包含了投影

?1.理論層面

? ? ? 現在的目的是找一組正交基,使得經過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的奇異值分解矩陣

2.幾何層面

? ? ? ?SVD是將一個相互垂直的網格變換到另外一個相互垂直的網格,按照上面的對于U,V的定位,可以實現用矩陣A將一個向量變換的過程,首先將向量x寫成用V這組正交基表示的形式,然后用矩陣A左乘向量x,并帶入AVi=σiUi,最后可以得到A的分解式,不是矩陣分解式,而是向量分解式,可以看出,如果有的奇異值很小甚至為0,那么本來有n項相加,就最后只有奇異值不為0的項相加了,假如有k項相加,那么k越接近于n最后A分解的結果越接近于A

3.奇異值分解的應用

(1)可以用來減少元素的存儲

(2)可以用來降噪:去掉奇異值小的項,奇異值小的我們認為是含有樣本重要信息很少,都是噪聲,因此就把這些信息少的給去掉了

(3)數據分析:比如說我們有一些樣本點用于建模,我們通過SVD將數據里面的奇異值小的都去掉了,最后得到了分解后的數據,用來做分析,更加準確

4.SVD和PCA的聯系

(1)列降維

? ? ? ?我們知道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推導出來的公式

(2)行降維

? ? ? ?同理,對數據矩陣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。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,283評論 6 530
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,947評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,094評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,485評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,268評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,817評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,906評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,039評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,551評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,502評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,662評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,188評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,907評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,304評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,563評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,255評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,637評論 2 370

推薦閱讀更多精彩內容