1.一種處理大規(guī)模矩陣數(shù)據(jù)的主成分分析方法,其特征在于,包括以下步驟:
S1:在內(nèi)存中生成一個n行、l列的隨機(jī)數(shù)矩陣Ω;
S2:選取原始數(shù)據(jù)矩陣A,并根據(jù)所述原始數(shù)據(jù)矩陣A計算矩陣G和H,并將矩陣G和H存儲于內(nèi)存中,其中,G=AΩ,H=ATG,所述原始數(shù)據(jù)矩陣A為m×n矩陣;
S3:初始化變量j=1,并初始化m×l矩陣Q和l×n矩陣B均為零矩陣;
S4:設(shè)定G[j,j+b]和Ω[j,j+b]分別為矩陣G和矩陣Ω的第j到j(luò)+b列,且當(dāng)j>1時,計算G[j,j+b]-QBΩ[j,j+b],并將計算結(jié)果覆蓋G[j,j+b],其中,b為不超過l-j的非負(fù)整數(shù);
S5:對矩陣G[j,j+b]做簡化QR分解,得到m×(b+1)列正交矩陣Q[j,j+b]和上三角方陣R,其中,Q[j,j+b]存儲在矩陣Q的第j到j(luò)+b列;
S6:如果j>1,則計算矩陣Q[j,j+b]-Q(QTQ[j,j+b])的簡化QR分解,將得到的m×(b+1)列正交矩陣覆蓋Q[j,j+b],以得到上三角陣為并計算矩陣乘法并將計算結(jié)果覆蓋R;
S7:設(shè)H[j,j+b]表示矩陣H的第j到j(luò)+b列,如果j=1,計算否則計算得到結(jié)果為(b+1)×n的矩陣Btemp,并將Btemp存儲在矩陣B的第j到j(luò)+b行;
S8:將變量j+b+1的值賦值給變量j;
S9:如果j≤l,則返回執(zhí)行所述S4,否則執(zhí)行所述S10;
S10:對矩陣B做奇異值分解:B=UΣVT,其中,矩陣V的前k列為所述前k個主成分向量,Σ的前k個對角元為所述對應(yīng)的奇異值。
2.根據(jù)權(quán)利要求1所述的處理大規(guī)模矩陣數(shù)據(jù)的主成分分析方法,其特征在于,在所述S1中,所述參數(shù)l為至少比k大5的整數(shù)。
3.根據(jù)權(quán)利要求1所述的處理大規(guī)模矩陣數(shù)據(jù)的主成分分析方法,其特征在于,所述S1,進(jìn)一步包括:
S11:根據(jù)隨機(jī)數(shù)生成器軟件生成一個n×l隨機(jī)數(shù)矩陣Ω;
S12:初始化變量i=0,變量P為小于10的非負(fù)整數(shù);
S13:如果i=P,則結(jié)束執(zhí)行,否則轉(zhuǎn)到所述S14繼續(xù)執(zhí)行;
S14:計算矩陣乘法AΩ,并對計算結(jié)果進(jìn)行簡化QR分解,將得到的m×l列正交陣賦值給矩陣G;
S15:計算矩陣乘法ATG,并對計算結(jié)果進(jìn)行簡化QR分解,將得到的n×l列正交陣賦值給矩陣Ω;
S16:將i的值加1,并轉(zhuǎn)到所述S13繼續(xù)執(zhí)行。
4.根據(jù)權(quán)利要求1所述的處理大規(guī)模矩陣數(shù)據(jù)的主成分分析方法,其特征在于,在所述S2中,根據(jù)所述原始數(shù)據(jù)矩陣A的不同產(chǎn)生方式或來源,通過遍歷一遍所述原始數(shù)據(jù)矩陣A中的元素來計算出矩陣G=AΩ和H=ATG。
5.根據(jù)權(quán)利要求1所述的處理大規(guī)模矩陣數(shù)據(jù)的主成分分析方法,其特征在于,所述S2,進(jìn)一步包括:
S21:在內(nèi)存中開辟二維數(shù)組空間存儲n×l的矩陣H,并將所述矩陣H的數(shù)據(jù)初始化為0;
S22:獲取原始數(shù)據(jù)矩陣A的預(yù)設(shè)行的數(shù)據(jù)并存于內(nèi)存中,并設(shè)定所述預(yù)設(shè)行形成s×n的矩陣Ai,計算矩陣乘運(yùn)算Gi=AiΩ,其中,所述Gi為矩陣G對應(yīng)的行;
S23:計算并將計算結(jié)果賦值給矩陣H;
S24:判斷是否獲取原始數(shù)據(jù)矩陣A的所有行,如果是,則停止執(zhí)行,否則返回執(zhí)行所述S22。