日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PCA与协方差矩阵

發(fā)布時(shí)間:2025/3/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCA与协方差矩阵 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、協(xié)方差矩陣


一個維度上方差的定義:


協(xié)方差的定義:

(a)

協(xié)方差就是計(jì)算了兩個維度之間的相關(guān)性,即這個樣本的這兩個維度之間有沒有關(guān)系。

協(xié)方差為0,證明這兩個維度之間沒有關(guān)系,協(xié)方差為正,兩個正相關(guān),為負(fù)則負(fù)相關(guān)。


協(xié)方差矩陣的定義:

對n個維度,任意兩個維度都計(jì)算一個協(xié)方差,組成矩陣,定義如下

直觀的對于一個含有x,y,z三個維度的樣本,協(xié)方差矩陣如下


可以看出,對角線表示了樣本在在各個維度上的方差。

其他元素表示了不同維度之間兩兩的關(guān)聯(lián)關(guān)系。


二、協(xié)方差矩陣的計(jì)算

(1)先讓樣本矩陣中心化,即每一維度減去該維度的均值,使每一維度上的均值為0,

(2)然后直接用新的到的樣本矩陣乘上它的轉(zhuǎn)置

(3)然后除以(N-1)即可‘


數(shù)學(xué)推導(dǎo)相對容易,樣本矩陣中心化以后,樣本均值為0,因此式a中每個維度無需減去均值,只需要進(jìn)行與其他維度的乘法,

這樣就可以用轉(zhuǎn)置相乘實(shí)現(xiàn)任意兩兩維度的相乘。


三、矩陣相乘的“變換的本質(zhì)”理解

A*B兩個矩陣相乘代表什么?

A的每一行所表示的向量,變到B的所有列向量為基底表示的空間中去,得到的每一行的新的表示。

B的每一列所表示的向量,變到A的所有行向量為基底表示的空間中去,得到的每一列的新的表示。


三、PCA深入

PCA的目的是降噪和去冗余,是一種常用的數(shù)據(jù)分析方法。PCA通過線性變換將原始數(shù)據(jù)變換為一組各維度線性無關(guān)的表示,可用于提取數(shù)據(jù)的主要特征分量,常用于高維數(shù)據(jù)的降維。

樣本矩陣的格式:

樣本1 [特征a1,特征a2,特征a3,…..,特征an]

樣本2 [特征a1,特征a2,特征a3,…..,特征an]

樣本3 [特征a1,特征a2,特征a3,…..,特征an]

樣本4 [特征a1,特征a2,特征a3,…..,特征an]

PCA后:r<n

樣本1 [特征b1,特征b2,特征b3,…..,特征br]

樣本2 [特征b1,特征b2,特征b3,…..,特征br]

樣本3 [特征b1,特征b2,特征b3,…..,特征br]

樣本4 [特征b1,特征b2,特征b3,…..,特征br]

直白的來說,就是對一個樣本矩陣,

(1)換特征,找一組新的特征來重新表示

(2)減少特征,新特征的數(shù)目要遠(yuǎn)小于原特征的數(shù)目


我們來看矩陣相乘的本質(zhì),用新的基底去表示老向量,這不就是重新找一組特征來表示老樣本嗎???

所以我們的目的是什么?就是找一個新的矩陣(也就是一組基底的合集),讓樣本矩陣乘以這個矩陣,實(shí)現(xiàn)換特征+減少特征的重新表示。


因此我們進(jìn)行PCA的基本要求是:

(1)第一個要求:使得樣本在選擇的基底上盡可能的而分散。

為什么這樣?

極限法,如果在這個基底上不分散,干脆就在這個基地上的投影(也就是特征)是一樣的。那么會有什么情況?


想象一個二維例子:

以下這一組樣本,有5個樣本,有2個特征x和y,矩陣是

[-1,-2]

[-1, 0]

[ 0, 0]

[ 2, 1]

[ 0, 1]

畫圖如下:


我現(xiàn)在是二維特征表示,x一個特征,y一個特征。我現(xiàn)在降維。

降成一維,我要選一個新的基底(特征)。

如果我選(1,0)作為基底,就是x軸嘛,然后我把這些樣本投影到x軸,或者乘以[1,0]列向量。

得,里面好幾個數(shù)都一樣,分不出來了。


所以這就是為樣本在基底上要盡可能分散了,這個分散不就是樣本在這個“基底上的坐標(biāo)”(這個基底上的特征值)的方差要盡可能大么


(2)第二個要求:使得各個選擇的基底關(guān)聯(lián)程度最小。

剛才是二維降一維,只選則一個一維基底就可以了,太拿衣服了。

考慮一個三維點(diǎn)投影到二維平面的例子。這樣需要倆基底。

基底得一個一個找啊,先找第一個,要找一個方向,使得樣本在這個方向上方差最大。

再找第二個基底,怎么找,方差最大?這不還是找的方向和第一個差不多么?那這兩個方向表示的信息幾乎是重復(fù)的。

所以從直觀上說,讓兩個字段盡可能表示更多的原始信息,我們是不希望它們之間存在(線性)相關(guān)性的,因?yàn)橄嚓P(guān)性意味著兩個字段不是完全獨(dú)立,必然存在重復(fù)表示的信息。所以最好就是選擇和第一個基底正交的基底。



那怎么找呢?不能隨便寫一個矩陣吧?答案肯定是要基于原來的樣本的表示。

我們求出了原來樣本的協(xié)方差矩陣,協(xié)方差矩陣的對角線代表了原來樣本在各個維度上的方差,其他元素代表了各個維度之間的相關(guān)關(guān)系。

也就是說我們希望優(yōu)化后的樣本矩陣,它的協(xié)方差矩陣,對角線上的值都很大,而對角線以外的元素都為0。


現(xiàn)在我們假設(shè)這個樣本矩陣為X(每行對應(yīng)一個樣本),X對應(yīng)的協(xié)方差矩陣為Cx,而P是我們找到的對樣本進(jìn)行PCA變換的矩陣,即一組基按列組成的矩陣,我們有Y=XP

Y即為我們變化后的新的樣本表示矩陣,我們設(shè)Y的協(xié)方差矩陣維Cy,我們想讓協(xié)方差矩陣Cy是一個對角陣,那么我們先來看看Cy的表示


注意:

推導(dǎo)規(guī)程為了把X湊一起,我們用了Y Yt=((Y Yt)t)t=(Yt Y)t

把樣本組織成行向量和列向量是一樣的原來,最后結(jié)果只需要一個轉(zhuǎn)置就變成一個格式了。把樣本X組織成列向量,就要把基底P組織成行向量,就要寫PX了


好了,我們退出了Cy的表示,最后的結(jié)果很神奇的成了一個熟悉的形式:方陣可對角化的表達(dá)式

讓我們來回憶一下可對角化矩陣的定義,順便也回憶了矩陣相似的定義:

(1)什么是可對角化和相似:如果一個方塊矩陣?A?相似于對角矩陣,也就是說,如果存在一個可逆矩陣?P?使得?P??1AP?是對角矩陣,則它就被稱為可對角化的。

(2)如何判斷可對角化呢:我們再來回憶一下矩陣可對角化的條件:n?×?n?矩陣?A?只在域?F?上可對角化的,如果它在?F?中有?n?個不同的特征值,就是說,如果它的特征多項(xiàng)式在?F?中有?n?個不同的根,也就說他有n個線性無關(guān)的特征向量,這三條件是等價(jià)的,滿足一個就可以對角化。

注意哦:有n個線性無關(guān)的特征向量并不一定代表有n個不同的特征值,因?yàn)榭赡芏鄠€特征向量的對于空間的權(quán)重相同嘛。。。但是n個不同的特征值一定有n個線性無關(guān)的特征向量啦。


C是啥呢,C是協(xié)方差矩陣,協(xié)方差矩陣是實(shí)對稱矩陣,就是實(shí)數(shù)的意思,有很多很有用的性質(zhì)

1)實(shí)對稱矩陣不同特征值對應(yīng)的特征向量,不僅是線性無關(guān)的,還是正交的。

2)設(shè)特征向量重?cái)?shù)為r,則必然存在r個線性無關(guān)的特征向量對應(yīng)于,因此可以將這r個特征向量單位正交化。

3) n階實(shí)對稱矩陣C,一定存在一個正交矩陣E,滿足如下式子,即C既相似又合同于對角矩陣。(這里又溫習(xí)了合同的概念哦)

由上面兩條可知,一個n行n列的實(shí)對稱矩陣一定可以找到n個單位正交特征向量,設(shè)這n個特征向量為e1,e2,…,en

我們將其按列組成矩陣:

則對協(xié)方差矩陣C有如下結(jié)論:


好了,PCA中,我們要找的這個變換矩陣,就是E!!!!!!因?yàn)橛肵乘E后,得到的矩陣是一個對角矩陣哦!



PCA算法步驟總結(jié):

設(shè)有m條n維數(shù)據(jù),這里比較糊涂就是按行組織樣本還是按列組織樣本,下面是按行組織樣本:

1)將原始數(shù)據(jù)按行組成n行m列矩陣X,代表有n個數(shù)據(jù),每個數(shù)據(jù)m個特征

2)將X的每一列(代表一個屬性字段)進(jìn)行零均值化,即減去這一列的均值

3)求出協(xié)方差矩陣C=1/n*?XXT


4)求出協(xié)方差矩陣的特征值及對應(yīng)的特征向量

5)將特征向量按對應(yīng)特征值大小從上到下按列排列成矩陣,取前k列組成矩陣P

6)Y=XP即為降維到k維后的數(shù)據(jù)


按列組織是這樣的,理解一下:

1)將原始數(shù)據(jù)按列組成n行m列矩陣X

2)將X的每一行(代表一個屬性字段)進(jìn)行零均值化,即減去這一行的均值

3)求出協(xié)方差矩陣C=1/m*XXT
4)求出協(xié)方差矩陣的特征值及對應(yīng)的特征向量

5)將特征向量按對應(yīng)特征值大小從上到下按行排列成矩陣,取前k行組成矩陣P

6)Y=PX即為降維到k維后的數(shù)據(jù)



我們將其按列組成矩陣: </div>

總結(jié)

以上是生活随笔為你收集整理的PCA与协方差矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。