![]() PCA簡單的說,它是一種通用的降維工具。在我們處理高維數(shù)據(jù)的時候,
了能降低后續(xù)計算的復(fù)雜度,在“預(yù)處理”階段通常要先對原始數(shù)據(jù)進行降維,而PCA就是干這個事的 本質(zhì)上講,PCA就是將高維的數(shù)據(jù)通過線性變換投影到低維空間上去,但這個投影可不是隨便投投, 遵循一個指導(dǎo)思想,那就是:找出最能夠代表原始數(shù)據(jù)的投影方法。這里怎么理解這個思想呢?“最 表原始數(shù)據(jù)”希望降維后的數(shù)據(jù)不能失真,也就是說,被PCA降掉的那些維度只能是那些噪聲或是冗 數(shù)據(jù)。這里的噪聲和冗余我認為可以這樣認識: 噪聲:我們常說“噪音污染”,意思就是“噪聲”干擾我們想聽到的真正聲音。同樣,假設(shè)樣本中某 主要的維度A,它能代表原始數(shù)據(jù),是“我們真正想聽到的東西”,它本身含有的“能量”(即該維度 方差,為啥?別急,后文該解釋的時候就有啦~)本來應(yīng)該是很大的,但由于它與其他維度有那 些千絲萬縷的相關(guān)性,受到這些個相關(guān)維度的干擾,它的能量被削弱了,我們就希望通過PCA 理后,使維度A與其他維度的相關(guān)性盡可能減弱,進而恢復(fù)維度A應(yīng)有的能量,讓我們“聽的更清 楚”! 冗余:冗余也就是多余的意思,就是有它沒它都一樣,放著就是占地方。同樣,假如樣本中有 個維度,在所有的樣本上變化不明顯(極端情況:在所有的樣本中該維度都等于同一個數(shù)),也 說該維度上的方差接近于零,那么顯然它對區(qū)分不同的樣本絲毫起不到任何作用,這個維度即 冗余的,有它沒它一個樣,所以PCA應(yīng)該去掉這些維度。 ,PCA的目的就是“降噪”和“去冗余”。“降噪”的目的就是使保留下來的維度間的相關(guān)性盡可
能小,而“去冗余”的目的就是使保留下來的維度含有的“能量”即方差盡可能大。那首先的首先,我們得需 要知道各維度間的相關(guān)性以及個維度上的方差啊!那有什么數(shù)據(jù)結(jié)構(gòu)能同時表現(xiàn)不同維度間的相關(guān)性以 及各個維度上的方差呢?自然是非協(xié)方差矩陣莫屬。協(xié)方差矩陣度量的是維度與維度之間的關(guān)系,而非樣本與樣本之間。協(xié)方差矩陣的主對角線上的元素是各個維度上的 方差(即能量),其他元素是兩兩維度間的協(xié)方差(即相關(guān)性)。我們要的東西協(xié)方差矩陣都有了,先來 看“降噪”,讓保留下的不同維度間的相關(guān)性盡可能小,也就是說讓協(xié)方差矩陣中非對角線元素都基本為 零。達到這個目的的方式自然不用說,線代中獎的很明確——矩陣對角化。而對角化后得到的矩陣,其 對角線上是協(xié)方差矩陣的特征值,它還有兩個身份:首先,它還是各個維度上的新方差;其次,它是各 個維度本身應(yīng)該擁有的能量(能量的概念伴隨特征值而來)。這也就是我們?yōu)楹卧谇懊娣Q“方差”為“能量”的 原因。也許第二點可能存在疑問,但我們應(yīng)該注意到這個事實,通過對角化后,剩余維度間的相關(guān)性已 經(jīng)減到最弱,已經(jīng)不會再受“噪聲”的影響了,故此時擁有的能量應(yīng)該比先前大了。看完了“降噪”,我們 的“去冗余”還沒完呢。對角化后的協(xié)方差矩陣,對角線上較小的新方差對應(yīng)的就是那些該去掉的維度。 所以我們只取那些含有較大能量(特征值)的維度,其余的就舍掉即可。PCA的本質(zhì)其實就是對角化協(xié)方 差矩陣。 我也是剛學(xué)的,代碼如下
for i=1:29
Xnor(i,:)=X(i,:)./sum(X(i,:)); end [p,t,latent]=princomp(Xnor,'econ'); latent=latent./sum(latent)*100; latent(1:10) 第一步導(dǎo)入矩陣29 X 14 前15對照組求特征值 plot(t(1:15,1),t(1:15,2),'o') hold on plot(t(16:29,1),t(16:29,2),'*') xlabel('PC1(36.3%)') ylabel('PC2(26.9%)') 上一篇:用Python進行生物信息學(xué)分析,Blast后結(jié)果的分析。 下一篇:網(wǎng)傳浙大博士生月補助要漲到3500元(搜集相關(guān)資料報道應(yīng)該真的) |
|