matlab在主成分分析中的應用

matlab在主成分分析中的應用

ID:14498003

大小:140.50 KB

頁數(shù):11頁

時間:2018-07-29

matlab在主成分分析中的應用_第1頁
matlab在主成分分析中的應用_第2頁
matlab在主成分分析中的應用_第3頁
matlab在主成分分析中的應用_第4頁
matlab在主成分分析中的應用_第5頁
資源描述:

《matlab在主成分分析中的應用》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫

1、§10.利用Matlab編程實現(xiàn)主成分分析1.概述Matlab語言是當今國際上科學界(尤其是自動控制領域)最具影響力、也是最有活力的軟件。它起源于矩陣運算,并已經(jīng)發(fā)展成一種高度集成的計算機語言。它提供了強大的科學運算、靈活的程序設計流程、高質量的圖形可視化與界面設計、與其他程序和語言的便捷接口的功能。Matlab語言在各國高校與研究單位起著重大的作用。主成分分析是把原來多個變量劃為少數(shù)幾個綜合指標的一種統(tǒng)計分析方法,從數(shù)學角度來看,這是一種降維處理技術。1.1主成分分析計算步驟①計算相關系數(shù)矩陣(1)在(3.5.3)式中,rij(i,j=1,2,…,p)為原變量的xi與xj之間的相關系數(shù),其計

2、算公式為(2)因為R是實對稱矩陣(即rij=rji),所以只需計算上三角元素或下三角元素即可。②計算特征值與特征向量首先解特征方程,通常用雅可比法(Jacobi)求出特征值,并使其按大小順序排列,即;然后分別求出對應于特征值的特征向量。這里要求=1,即,其中表示向量的第j個分量。③計算主成分貢獻率及累計貢獻率主成分的貢獻率為累計貢獻率為一般取累計貢獻率達85—95%的特征值所對應的第一、第二,…,第m(m≤p)個主成分。④計算主成分載荷其計算公式為(3)得到各主成分的載荷以后,還可以按照(3.5.2)式進一步計算,得到各主成分的得分(4)2.程序結構及函數(shù)作用在軟件Matlab中實現(xiàn)主成分分析

3、可以采取兩種方式實現(xiàn):一是通過編程來實現(xiàn);二是直接調用Matlab種自帶程序實現(xiàn)。下面主要主要介紹利用Matlab的矩陣計算功能編程實現(xiàn)主成分分析。2.1程序結構Cwprint.m主函數(shù)子函數(shù)Cwfac.mCwscore.mCwstd.m2.2函數(shù)作用Cwstd.m——用總和標準化法標準化矩陣Cwfac.m——計算相關系數(shù)矩陣;計算特征值和特征向量;對主成分進行排序;計算各特征值貢獻率;挑選主成分(累計貢獻率大于85%),輸出主成分個數(shù);計算主成分載荷Cwscore.m——計算各主成分得分、綜合得分并排序Cwprint.m——讀入數(shù)據(jù)文件;調用以上三個函數(shù)并輸出結果3.源程序3.1cwstd.

4、m%cwstd.m,用總和標準化法標準化矩陣functionstd=cwstd(vector)cwsum=sum(vector,1);%對列求和[a,b]=size(vector);%矩陣大小,a為行數(shù),b為列數(shù)fori=1:aforj=1:bstd(i,j)=vector(i,j)/cwsum(j);endend3.2cwfac.m%cwfac.mfunctionresult=cwfac(vector);fprintf('相關系數(shù)矩陣:')std=CORRCOEF(vector)%計算相關系數(shù)矩陣fprintf('特征向量(vec)及特征值(val):')[vec,val]=eig(

5、std)%求特征值(val)及特征向量(vec)newval=diag(val);[y,i]=sort(newval);%對特征根進行排序,y為排序結果,i為索引fprintf('特征根排序:')forz=1:length(y)newy(z)=y(length(y)+1-z);endfprintf('%g',newy)rate=y/sum(y);fprintf('貢獻率:')newrate=newy/sum(newy)sumrate=0;newi=[];fork=length(y):-1:1sumrate=sumrate+rate(k);newi(length(y)+1-k)=

6、i(k);ifsumrate>0.85break;endend%記下累積貢獻率大85%的特征值的序號放入newi中fprintf('主成分數(shù):%g',length(newi));fprintf('主成分載荷:')forp=1:length(newi)forq=1:length(y)result(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p));endend%計算載荷disp(result)3.3cwscore.m%cwscore.m,計算得分functionscore=cwscore(vector1,vector2);sco=vector1*vec

7、tor2;csum=sum(sco,2);[newcsum,i]=sort(-1*csum);[newi,j]=sort(i);fprintf('計算得分:')score=[sco,csum,j]%得分矩陣:sco為各主成分得分;csum為綜合得分;j為排序結果3.4cwprint.m%cwprint.mfunctionprint=cwprint(filename,a,b);%filename

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。