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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

主成分分析步骤_多元分析(1)--主成分分析

發(fā)布時(shí)間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主成分分析步骤_多元分析(1)--主成分分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

主成分分析

主成分分析(PCA)是數(shù)據(jù)降維的一種常見方法,其它常見的方法還有因子分析(FA),獨(dú)立成分分析,在進(jìn)行大數(shù)據(jù)處理時(shí),因?yàn)閿?shù)據(jù)有很多特征,維數(shù)過高,不容易進(jìn)行處理且不能進(jìn)行可視化,所以一般要對其進(jìn)行降維,我們都知道在二維平面中的兩個(gè)點(diǎn)能確定一條直線,在三維平面中,三個(gè)點(diǎn)一定能確定一個(gè)平面,二維中的直線通過旋轉(zhuǎn)變換可以轉(zhuǎn)化到一個(gè)坐標(biāo)上(一位數(shù)據(jù)),三維中的平面可以通過旋轉(zhuǎn)轉(zhuǎn)化到一個(gè)坐標(biāo)平面上(二維數(shù)據(jù)),所以可以說這些確定直線和平面的點(diǎn)直接存在一定的相關(guān)關(guān)系,且可以通過某種關(guān)系將緊密關(guān)系的數(shù)據(jù)轉(zhuǎn)化為經(jīng)可能少的新變量。主成分分析就是利用這一點(diǎn)。PCA的主要思想是將n維特征映射到k維上,這k維是全新的正交特征也被稱為主成分,是在原有n維特征的基礎(chǔ)上重新構(gòu)造出來的k維特征[1],那么如何才能找到這樣一組有正交特征的k維數(shù)據(jù)呢,在主成分分析技術(shù)中的思路是在原始坐標(biāo)軸上順序的找相互正交的坐標(biāo)軸,尋找原則是:第一個(gè)新坐標(biāo)軸的方向是始數(shù)據(jù)中方差最大的方向,第二個(gè)新坐標(biāo)軸選取是與第一個(gè)坐標(biāo)軸正交的平面中使得方差最大的,第三個(gè)軸是與第1,2個(gè)軸正交的平面中方差最大的。依次類推,可以得到n個(gè)這樣的坐標(biāo)軸。通過這種方式獲得的新的坐標(biāo)軸。那么如何才能得到最大差異性的主成分方向呢,就是對n維數(shù)據(jù)求協(xié)方差矩陣,在求出協(xié)方差矩陣的特征值和特征向量,選擇最大的k個(gè)特征值對應(yīng)的k個(gè)特征向量組成轉(zhuǎn)移矩陣,和原始數(shù)據(jù)相乘得到新的數(shù)據(jù)。因?yàn)榍筇卣髦岛瓦卣飨蛄坑袃煞N方式,特征值分解和奇異值分解。所以可以分兩種方式進(jìn)行主成分分析。

特征值分解

介紹特征值分解之前必須先知道矩陣乘法的集合意義,向量與矩陣相乘就是將向量進(jìn)行旋轉(zhuǎn)和伸縮(對線性變換不太了解的可以觀看3Blue1Brown的視頻分析,里面很形象的講解了線性變換的過程),如果矩陣對某些向量只發(fā)生伸縮變換,不產(chǎn)生旋轉(zhuǎn)效果,那么這些向量就稱為這個(gè)矩陣的特征向量,伸縮的比例就是特征值[2]。特征分解的公式如下:

其中

是 的特征向量, 是 的特征值。特征值從大到小排列表示對應(yīng)特征向量的重要性。方陣 可以進(jìn)行特征分解:

其中

是特征向量組成的矩陣, 表示對角矩陣,對角線上的排列的是對應(yīng)的特征值。因?yàn)樘卣髦捣纸庵荒苓m用 是方陣的情況。所以要引入奇異值分解。

奇異值分解

奇異值分解可以分解

階的矩陣,解決了特征值分解只能分解方陣的缺陷,其分解供公式如下:

其中

( 階)和 ( 階)都是正交矩陣,分別稱為 的左奇異向量矩陣和右奇異向量矩陣。 是 階矩陣。具體求法是:

是 方陣的特征向量, 是 方陣的特征向量。 是前面兩個(gè)方陣非零特征值組成的矩陣。具體求法可以看實(shí)例。

主成分分析執(zhí)行步驟

1.首先需要對原始數(shù)據(jù)進(jìn)行處理,將原始數(shù)據(jù)進(jìn)行單位化,單位化是按特征進(jìn)行的求出特征的樣本方差,每個(gè)樣本再除上對應(yīng)的樣本方差。樣本方差求法如下:

其中 ,這里之所以除上n-1而不是n是為了得到無偏估計(jì)。具體解釋可以參考知乎問答:樣本估計(jì)為啥是除以n-1。

2.去平均值(即去中心化),即每一位特征減去各自的平均值。

3.計(jì)算協(xié)方差矩陣

注意協(xié)方差的計(jì)算,協(xié)方差的計(jì)算是按照維度來計(jì)算的,即特征,如有矩陣329*9階,一行表示一個(gè)樣本供329個(gè)樣本,每列表示一個(gè)特征,上式中,n=329,

表示特征, 表示每個(gè)特征的均值(329個(gè)數(shù)的平均值)。

具體解法可參考下面的matlab代碼:

x=round(rand(10,3)*50); function Z=pca_test(x)my_mean=mean(x,1);[m,n]=size(x);Z=zeros(n,n);for i=1:nfor j=1:nZ(i,j)=sum((x(:,i)-my_mean(i)).*(x(:,j)-my_mean(j)))/(m-1); endend end %輸出的Z為協(xié)方差,這里是10*3階矩陣,所以協(xié)方差為3*3階

4.計(jì)算協(xié)方差矩陣的特征值和特征向量(特征值和特征向量)

5.選取擇最大的k個(gè)特征值對應(yīng)的k個(gè)特征向量組成轉(zhuǎn)移矩陣P,和原始數(shù)據(jù)X相乘得到新的數(shù)據(jù)Y。 Y=P*X。

matlab實(shí)現(xiàn)主成分分析

在matlab中有自帶的求解pca(主成分分析)的函數(shù)pca()[3],函數(shù)的主要輸入是經(jīng)過單位化的原始數(shù)據(jù),去中心化和計(jì)算協(xié)方差矩陣等步驟都在函數(shù)中實(shí)現(xiàn),pca函數(shù)還有幾個(gè)輸入?yún)?shù),但都是可選的(有默認(rèn)值),如選擇計(jì)算主成分分析的方式(特征值分解或奇異值分解)等。輸出的主要有6個(gè)量:

coeff : 主成分系數(shù) 應(yīng)該就是協(xié)方差矩陣的特征向量矩陣(也就是映射矩陣).完整輸出的情況下是一個(gè)p-by-p 的matrix.每一列都是一個(gè)特征向量.按對應(yīng)的特征值 的大小,從大到小進(jìn)行排列。

score: 進(jìn)行旋轉(zhuǎn)(也就是利用映射矩陣coeff進(jìn)行)后的結(jié)果i.e. score = X * coeff. n-by-p matrix這里有個(gè)坑 如果你使用pca時(shí)使用的是默認(rèn)的中心化(i.e 不對'Centered'設(shè)置'false'),拿X *coeff 和score對比的時(shí)候, 記得把X中心化后再乘以coeff,之后再和score對比....;同樣如果pca使用的是默認(rèn)值, 恢復(fù)的X = score * coeff' (注意轉(zhuǎn)置)是中心化后的數(shù)據(jù)。

latent: 主成分方差 也就是各特征向量對應(yīng)的特征值,從大到小進(jìn)行排列。

tsquared :()。

explained : 每一個(gè)主成分所貢獻(xiàn)的比例,可以更直觀的選擇所需要降維的維數(shù)了,不用再用特征值去求了。

mu: X 按列的均值,當(dāng)前僅當(dāng) 'Centered'置于'true'(默認(rèn)值)時(shí)才會(huì)返回此變量。

matlab代碼

這里以matlab自帶的數(shù)據(jù)進(jìn)行仿真說明[4]

load cities %得到三個(gè)數(shù)據(jù)集 %ratings 329*9每一行表示一個(gè)樣本,每一列表示一個(gè)特征。 %單位化樣本數(shù)據(jù) std_ratings=std(ratings);%std()函數(shù)是對ratings求樣本方差,默認(rèn)是按列求,求出的結(jié)果為1*9數(shù)組 one_ratings=ratings./(std_ratings); %使用pca函數(shù)降維 [coeff,score,latent,tsquare,explained,mu]= pca(one_ratings); %計(jì)算選取前k個(gè)特征值進(jìn)行降維后和原數(shù)據(jù)的準(zhǔn)確率 rate=cumsum(latent)./sum(latent);%cumsum是累加和函數(shù) %計(jì)算后選取前面7個(gè)特征值可獲得90%以上的準(zhǔn)確率,將329*9的數(shù)據(jù)降維到329*7 %選取coeff特征向量的前7列。 cho=coeff(:,1:7) new_ratings=ratings*cho;原數(shù)據(jù)乘上特征向量得到降維后的數(shù)據(jù)

cities:它使用了衡量美國329個(gè)城市生活質(zhì)量的9個(gè)指標(biāo):氣候、住房、健康、犯罪率、交通、教育、藝術(shù)、娛樂和經(jīng)濟(jì)。對于各指標(biāo),越高表示越好,如高的犯罪指標(biāo)表示低的犯罪率。它由三個(gè)數(shù)據(jù)集組成,categories是9個(gè)特征的字符說明,names是每個(gè)樣本城市的字符名稱,ratings才是我們需要關(guān)注的數(shù)組。

std():std函數(shù)總共有三個(gè)輸入?yún)?shù),其中有兩個(gè)可選參數(shù)[5],flag--標(biāo)注求樣本方差時(shí)是除以n還是n-1,flag=0是除以n-1,flag=1是除以n,dim--表示是按列求還是按行求,dim=1是按照列分dim=2是按照行分 若是三維的矩陣,dim=3就按照第三維來分?jǐn)?shù)據(jù)。默認(rèn)情況下,flag=0,dim=1。

Microstrong:主成分分析(PCA)原理詳解?zhuanlan.zhihu.comCodingLabs - PCA的數(shù)學(xué)原理?blog.codinglabs.orghttps://blog.csdn.net/ckzhb/article/details/75281727?blog.csdn.nethttps://blog.csdn.net/qq_25800311/article/details/83385029?blog.csdn.net

參考

  • ^https://zhuanlan.zhihu.com/p/37777074
  • ^特征值分解、奇異值分解、PCA概念整理?https://blog.csdn.net/jinshengtao/article/details/18448355
  • ^https://blog.csdn.net/qq_25800311/article/details/83385029
  • ^https://blog.csdn.net/ckzhb/article/details/75281727
  • ^https://blog.csdn.net/qinze5857/article/details/79156555
  • 總結(jié)

    以上是生活随笔為你收集整理的主成分分析步骤_多元分析(1)--主成分分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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