手机版

奇异值分解与主成分分析

发布时间:2024-11-17   来源:未知    
字号:

数值实验03:奇异值分解与主成分分析

主成分分析,也简称为PCA。它是一种对数据进行分析的技术,属于多元统计分析的范畴,最重要的应用是对原有数据进行简化。这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。它的优点是简单,而且无参数限制,可以方便地应用于许多实际课题。

基本问题

1、从代数的角度来看,PCA的目标就是使用另一组基去重新描述得到的数据空间,或者说它是线性变换Z=PX,而新的基要怎样揭示原有的数据间的关系?PCA适用的前提条件是什么? 答:

主成分分析在统计学中指的是一种简化数据集的技术,是一个线性变换。它把数据变换到一个新的坐标系中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能保留住数据的最重要方面。

PCA适用的前提条件为尽量不改变数据特性:

(1) 满足线性要求。由于PCA的目标是使用另一组新的基去重新描述得到的数

据空间,它是线性变换Z=PX,这使得它能进行的主元分析之间的关系也是线性的。

(2) 符合正态分布或指数分布。如果数据不满足正态分布或指数分布,方差和

协方差就不能很好地反映噪声和冗余,PCA将失效。

(3) 本身具有较高的信噪比。在进行数据处理时把具有较高方差的一维向量当

作主元,方差较小的当作噪声,这样可以很方便的取出数据中的主要成分,去除次要部分的噪声。主要成分能够很好的还原数据的信息。

(4) 主元正交。主元正交能够使用一系列的线性变换对数据进行处理,提高

PCA的性能及效率。

2、对于一组具有m个观测变量,n个采样点的数据X,将每个观测变量的采样值

T

写为行向量,可以得到一个m n的矩阵X (x1,x2,L,xm),这m个观测变量的

协方差矩阵如下:

CX

1

XXT

n 1

证明协方差矩阵是m阶的对称半正定矩阵。为什么该矩阵对角线上的元素对应的是观测变量的方差?

CX

1

XXT

n 1,而

答: 因为 ,

所以,CX为对称矩阵。对CX求特征值,由于X矩阵和它的转置矩阵的特征值相等,设为λ。所以CX矩阵的特征值为λ2≥0。所以该矩阵为半正定矩阵。综上所述,矩阵CX为对称半正定矩阵,主对角元素是观测变量的方差。

3、对于新定义的Z=PX,推导该变量的协方差矩阵CZ与CX的关系。 答:寻找一组正交基组成矩阵P,Z=PX,使得CZ为对角矩阵。则有

所以,

实验问题

4、对矩阵X进行奇异值分解结果如何?它与CX的特征值分解有何关系?讨论数据的中心化与归一化对计算结果的影响。

答:对矩阵X进行奇异值分解,将X分解成三个矩阵:

其中U是m*m 的矩阵,V是n*n矩阵,Λ是m*n 矩阵。U是矩阵XXT的特征值矩阵,V是矩阵XTX的特征值矩阵。Λ是伪对角矩阵,对角线上的值就是奇异值。 CX矩阵的特征值乘上(n-1)等于X矩阵特征值的平方。CX矩阵的特征向量和X矩阵分解出来的U矩阵的列向量线性相关。

中心化与归一化:

中心化:每个维度数据都减去该维度数据的平均值; 归一化:每个维度数据都除以该维度数据的标准差。

中心化和归一化也称为数据的标准化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。原始数据通过标准化处理后,它们之间的可比性增强、影响因素减少,从而更利于分析。

5、随机生成若干个的矩阵X,分别计算矩阵X的奇异值分解与矩阵CX的特征值分解,它们有何关系?分析和关注数据的中心化与归一化对计算结果产生的差异。 答:

设矩阵X为原矩阵,矩阵B为PCA分解后得到的酉矩阵,矩阵C为PCA分解后得到的对角矩阵,矩阵U为SVD分解后的左矩阵,矩阵V为SVD分解后的右矩阵,矩阵S为SVD分解后中间的对角矩阵。 第一组数据:

X = [6 5 0 3

CX=[23.3333333333333 22.3333333333333 21 22.3333333333333

34

26.6666666666667

2 8 3 5

2 6 3 7

7 7 5 1]

32 30 32.6666666666667 26 26

41.3333333333333]

-0.131199743636058 -0.723724827132701 0.644444068601329 0.209047469025914]

21 32 26.6666666666667

30

B = [0.411786479069834 -0.292084005692979 0.527131772735593 0.496300895026332 0.553398058746110

0.377376098777818 0.578830945694059 -0.661232901477611

-0.853173755189085 0.236520081252328 -0.0577234817691189 0.461325041888468

C = [113.069669593525 0 0 0 0

0 0

13.2313125606574 0 0 0 0

4.14370201271079

0 0.888649166440631] 0.709285491919851

-0.434563467763495 0.144429504118997

0.316989759644773 -0.683377711458733

U = [-0.455616259277181

-0.712772491544327 -0.0639562125133900 -0.316940292388088 0.0694478842926790 -0.428856678438048 V = [-0.411786479069834

-0.527131772735593 -0.496300895026332 -0.553398058746110

-0.698570458293384 0.292084005692980 -0.377376098777818 -0.578830945694059 0.661232901477611

0.806351256010587 0.494493169172612 -0.374289143250851 -0.853173755189086 0.236520081252327 -0.0577234817691196 0.461325041888469

0.433576869082519] -0.131199743636058 -0.723724827132702 0.644444068601329 0.209047469025914]

S = [18.4176276642942 0 0 0

0 0 0

6.3003125066914 0

0 3.52577736650123 0 0 0

1.63277294787790]

第二组数据:

X = [8

9 1 4

3 8 4 9

2 3 1 1

9 6 5 1]

45

CX=[54 45.3333333333333 1 6

45.3333333333333 56.6666666666667 14.3333333333333 34.6666666666667 16 45

14.3333333333333 34.6666666666667

5 14

14 47.6666666666667]

0.171698006102394 0.0605203628197950 -0.979869814255297

0.0819281849909620]

B = [0.601930126094515 -0.163445607070299

0.569938091298097 0.762538231413244 0.184814534018447 -0.0338032706290575 0.527915034264861 C = [141.303160749497 0

0.762551933660735 -0.300072163662018 0.0674986964438112

-0.625042652990468 0

-0.569135459309869

0 0 0

17.8985212561070 0 0 0

3.99109403326986 0 0

0.140557294459576]

-0.0615497909027829 0.512439637536504 U = [0.565645950568921 0.643165530580008 0.665344032683325 -0.106121556794377 -0.361267518502523 0.277140947041834 0.0371614916508057 0.929390004265275 0.400692990019077

-0.757426787878249

0.0439502364799512 V = [0.601930126094514 0.163445607070298 -0.762551933660735 0.569938091298097 -0.762538231413244 0.300072163662019 0.184814534018447 0.0338032706290577 -0.0674986964438131 0.527915034264861

0.625042652990468

0.569135459309869

S = [20.5890621993448 0 0 0

0 7.32772568866501 0 0

0 0 3.46024306946920 0 0

0.649362674765566]

第三组数据:

X = [5 7 8 5

3 2 1 4 7 4 9 4 2

6

8

3]

CX=[29 27 40.6666666666667 23.6666666666667 27

35

47.3333333333333 25.6666666666667

40.6666666666667 47.3333333333333 70

34.6666666666667

23.6666666666667 25.6666666666667 34.6666666666667 22] B = [0.418586401553023 -0.701149405212854 -0.348165609222619 0.474791093544868 0.358215772578395 0.582307075647928 0.681683945801254 0.422652352034504 -0.487595313404137 0.366968445458451

-0.448816177477403

0.549499762103063

C = [146.600794041188 0 0 0

5.84130488024606 0

-0.644624940125075 -0.240927663382256 0.513632325177618] 0.171698006102396 0.0605203628197945 -0.979869814255297 0.0819281849909608]

0.460386407878421 0.554232214344214 -0.344851848919005 -0.601621318040724]

0.115401392950555]

0.367824900549653 0.569609399743436 -0.715166553126011 0.169666660099798 -0.348165609222615 0.582307075647929 -0.487595313404139 0.549499762103062

0.704694722571942 -0.444795024727492 -0.119849179412505 -0.539628490862994] 0.460386407878421 0.554232214344212 -0.344851848919001 -0.601621318040727]

U = [0.605812846608045 0.0331811000352337 0.207658307698303 0.592819716874282 0.488296636701124

-0.659227233164309 -0.350339490735921 0.664515395522088

V = [0.418586401553023 -0.701149405212855 0.474791093544868 0.681683945801255 0.366968445458451

0.358215772578396 0.422652352034503 -0.448816177477400

0 0

S = [20.9714659030685 0

0 0 0 备用 一、 6 6 2 3

5 2 8 2

2 2 2 4

3 9 4 2

4.18615750309734 0 0 0

3.21364264610210 0 0

0.588391178427778]

28.3333333333333 21.3333333333333 13.3333333333333 28.6666666666667 21.3333333333333 32.3333333333333 12.6666666666667 23

13.3333333333333 12.6666666666667 9.33333333333333 13.3333333333333 28.6666666666667 23 0.537587183261060 0.518640628679522 0.277015262857704 0.604379403041026 88.0137240422176 0 0

13.3333333333333 36.6666666666667 -0.278098401412728 0.823965609752008 0.0648326287445351 -0.489426892730425 0

0 0

0.552391174163078 -0.201379705542234 0.565951746447693 -0.577934966579514

0.573171257332275 0.107418743358104 -0.773794478583788 -0.247341925796557

12.4679761649677 0

1.96053776434238

0.181923632772101 -0.702407403864479 0.687961359340669 0.0153882711667754

0.479092200368461 -0.325263458735088 -0.473627121171319 0.663590005989213

-0.695408176343655 0.0493984301215078 0.219059613417383 0.682627386753088

0.503767727886078 0.631179306148087 0.504380217608238 0.305665431340190

0.537587183261060 0.518640628679522 0.277015262857704 0.604379403041026

16.2493437444917 0 0 0 0 二、 3 3 4 5

1 3 8 0

9 7 5 6

2 5 10 5

-0.278098401412728 0.823965609752009 0.0648326287445356 -0.489426892730425

0.552391174163079 -0.201379705542234 0.565951746447692 -0.577934966579515

-0.573171257332273 -0.107418743358104 0.773794478583789 0.247341925796555

0 0 0

6.11587512093756 0 0 0

3.55995591060018 0 0

2.42520376319746

19.6666666666667 14.6666666666667 32.6666666666667 28.6666666666667 14.6666666666667 24.6666666666667 23.3333333333333 32.3333333333333 32.6666666666667 23.3333333333333 63.6666666666667 44.3333333333333 28.6666666666667 32.3333333333333 44.3333333333333 51.3333333333333 0.365051935559367 0.349728670495592 0.633293734641686 0.585974391113922

-0.142722919391760 0.589132569223871 -0.657340657371482 0.447723401584506

0.573990962306015 -0.597617667972004 -0.380649531338749 0.410479515213987

0.718958710786418 0.416492251837618 -0.148149384479332 -0.536362131606955

136.403156902038 0 0 0 0

0 0

19.6511093435658 0 0 0

3.23342699806239 0 0

0.0456400896668650

0.632923618270513 0.133306117788165 -0.694533113861771 0.315057020466268

0.475363140944451 0.219304302115233 0.0910025701171173 -0.847144639089014

0.452127775953530 -0.844541432235589 0.279451257682395 0.0650940706093969

0.411118051024402 0.469983905332361 0.656695729056676 0.422904003633402

0.365051935559367 0.349728670495592 0.633293734641686 0.585974391113923 20.2289265831412 0 0 0 0 三、 1 3 3 7

1 7 1 7

5 8 7 9

9 3 7 2

0.142722919391759 -0.589132569223872 0.657340657371483 -0.447723401584506 0

0 0

-0.573990962306017 0.597617667972003 0.380649531338749 -0.410479515213986

0.718958710786417 0.416492251837620 -0.148149384479331 -0.536362131606956

7.67810706038261 0 0 0

3.11452741105086 0 0

0.370027389527544

22.6666666666667 24.6666666666667 37.6666666666667 17.6666666666667 24.6666666666667 33.3333333333333 43.6666666666667 17 37.6666666666667 43.6666666666667 73 17.6666666666667 17

45.3333333333333

45.3333333333333 47.6666666666667

0.358690161733358 0.414508565378319 0.702456020732014 0.453959861707013

147.297012629784 0 0 0 0

0.287131956314902 0.512762152761915 0.0716307125494299 -0.805915166365173

0.763925655113692 -0.630381610928482 0.0616645539349394 -0.123426499789682

-0.453116101013406 -0.409727529617166 0.705423321662256 -0.359426053217087

0 0 0

26.5268732511105 0 0 0

2.49814686655876 0 0

0.344633919213220

-0.683256081382107 0.292129854443466 -0.422140884934977 0.519247868232044

-0.244364505993554 -0.729784896689548 0.448956316683290 0.454024469037215

-0.561129146160856 0.332085184979511 0.642111412049503 -0.403170492176334

-0.398222546817333 -0.521338261231409 -0.455991484012894 -0.601412493294117

-0.358690161733358 -0.414508565378319 -0.702456020732014 -0.453959861707013 21.0212044823638 0 0 0 0

0.287131956314902 0.512762152761915 0.0716307125494297 -0.805915166365173 0

0 0

0.763925655113692 -0.630381610928483 0.0616645539349400 -0.123426499789683

-0.453116101013407 -0.409727529617165 0.705423321662256 -0.359426053217087

8.92079703576601 0 0 0

2.73759759637466 0 0

1.01680959753517

从上面的数据可以看出,PCA对角矩阵中的特征值乘上4-1=3之后得到的值等于SVD对角矩阵中的特征值的平方。 并且矩阵B和矩阵V为相似矩阵。

矩阵归一化和中心化的影响: 原矩阵:

X = [9 0

7

10 7

1 1

5

5 2

5 5

0 1

8 8]

归一化矩阵:

Z = [0.562500000000000 0.370370370370370 0

0.259259259259259

0.111111111111111

0.227272727272727

0.777777777777778

0.0454545454545455 0.363636363636364

0.363636363636364]

0.0956439393939394

0.312500000000000 0.125000000000000

0.185185185185185 0.185185185185185

0.111111111111111

归一化后的CX=[0.143229166666667 0.0964506172839506 0.0964506172839506 0.0254629629629630 0.0956439393939394

0.0909922267946959 0.0877914951989026 0.0768799102132435

0.0254629629629630

0.0877914951989026 0.209876543209877 0.0336700336700337 0.553317066856917 0.148132736643049 0.00276914240291637 -0.819688506513207

0.0768799102132435 0.0336700336700337 0.106060606060606] 0.429744219686356 -0.847064112113163 0.280658843640978 0.137959809735346]

B =[ 0.514769293294659 0.494138344850853 0.508800135373878 0.530521136734373 0.441228195384782

0.0407615572335510 -0.799856405121901 0.338224071859802

0 0

0 0 0

C =[ 0.346783518742218 0 0 0 0

0.175434410671070 0 0

0.0274904027369602 0

0.000450210581596442]

0.627205641789769 0.0114911045768552 -0.340294080608135 -0.700486242638464 0.553317066856916 0.148132736643051 0.00276914240291566 -0.819688506513207

-0.257340537294896 0.134742067266268 0.750961639464783 -0.593023641371865] 0.429744219686359 -0.847064112113165 0.280658843640978 0.137959809735344]

U = [0.624748326118918 0.387399612523643 0.553537196455310 0.407396217831006 0.370559607686803

-0.821771928192253 0.392791135913755 0.142574758633152

V = [0.514769293294658 0.494138344850854 0.508800135373877 0.530521136734373 0.441228195384781

0.0407615572335516 -0.799856405121901 0.338224071859802

0 0

0 0 0

S = [1.01997576256824 0 0 0

0.725467595426019 0

0.287178007881663

0 0 0 0.0367509420939013]

中心化矩阵:

W = [1.27688479613812 1.37542395092427 -0.390434404721515 -1.02150783691050 0.255376959227625 -0.510753918455249

0.105801842378790 -0.740612896651528 -0.740612896651528

-0.150755672288882

1.48365073794176 -1.35680105059994 -0.702781928498727 -0.390434404721515

0.753778361444409 0.753778361444409]

中心化后的CX=[1 0.612438663180517 0.612438663180517 -0.664719673704188 0.333662551520575

-0.664719673704188 0.333662551520575 -0.489140321567980

1.00000000000000 0.143203421738355 0.143203421738355 -0.489140321567980

1

-0.926067165051089

1]

-0.305245695825801 0.00635155467284332 -0.748711403323762 -0.588401187512417]

-0.926067165051089 0.622058593382312 -0.635462636141867

B =[ 0.441169483587765 -0.570296114601832 -0.0907633347870455 -0.656320328393392 0.605289294756507

-0.766752184789324

-0.00556407373986936 0.0929725881858221 0.294656528646947

0 0

0 0

-0.447868778006324

C =[ 2.32068162301378 0 0 0 0

1.64453233185427 0 0 0

0.0347860451319498 0

6.22137586349007e-16]

-0.821666212745942

-0.150178127314304

-0.500000000000000

U =[ -0.228716341585181 0.854731692166080 -0.415903156039946 -0.210112194540952

0.0420466326566360 0.291847116835248 0.487772463254058

0.132912810101771 0.701320059025097 -0.684054741812564 0.622058593382313 -0.635462636141867

-0.500000000000000 -0.500000000000000 -0.500000000000000] -0.305245695825799 0.00635155467284059 -0.748711403323762 -0.588401187512419]

V =[-0.441169483587764 -0.570296114601833 0.0907633347870462 0.656320328393392 -0.605289294756507

-0.766752184789324

-0.00556407373986871 0.0929725881858253 0.294656528646947

-0.447868778006321

S =[2.63856871599762 0

0 0 0

0 0

2.22117018608723 0 0 0 0

0.323045098083611 0 0 1.82687214552364e-16]

备用:

矩阵归一化和中心化的影响: 原矩阵:

X = [0

10 2 1

4 2 5 3

10 9 1 7

3 4 5 9]

归一化矩阵:

Z = [0

0.285714285714286

0.370370370370370

0.142857142857143

0.190476190476190 0.238095238095238 0.428571428571429

0.0720390720390721

0.769230769230769 0.153846153846154 0.0769230769230769

0.142857142857143 0.357142857142857 0.214285714285714

0.333333333333333 0.0370370370370370 0.259259259259259

归一化后的CX=[0.207100591715976 0.0604395604395604 0.0604395604395604 0.0940170940170940 0.0720390720390721

0.0918367346938775 0.0740740740740741 0.0816326530612245

0.0940170940170940

0.0740740740740741 0.105624142661180 0.0787771898883010 0.187380805787408 0.310308507947312 -0.853126039258663 0.375197314298491

0.0816326530612245 0.0787771898883010 0.0990173847316704] 0.0515936174583926 0.716131607526661 -0.0339435824154490 -0.695227626430109]

B =[ 0.641533338425768 -0.742065703255654 0.403830552351369 0.481336096407498 0.440081154982884

0.477268305656663 0.198341515187375 0.426865435260911

0 0

0 0 0

C =[ 0.365103604281979 0 0 0 0

0.101659295904895 0 0

0.0233856443810694 0

0.0134303092347603]

0.655840248291623 0.0922723634773249 -0.745220554634226 -0.0774964812733327 -0.187380805787408

-0.461918737288268 0.00870302725375953 -0.482803474843370 0.743946330146066] -0.0515936174583929

U = [0.340656801970749 0.490364754171685 0.760051278024566 0.349265488626523 0.429288500310410

-0.643220120198483 0.299267018036235 0.506210960720618

V = [0.641533338425768 -0.742065703255654

0.403830552351369 0.481336096407497 0.440081154982884

0.477268305656663 0.198341515187374 0.426865435260912

0 0

0 0 0

-0.310308507947311 0.853126039258663 -0.375197314298491

-0.716131607526662 0.0339435824154503 0.695227626430108]

S = [1.04657097840803 0 0 0 0

0.552248030974023 0 0

0.264871540832926 0

0.200726001565021]

中心化矩阵:

W = [-0.710619504152029

0.387298334620742

0.806225774829855

-0.855527738208045

1.47590204708498 -1.16189500386223 -0.273315193904626 -0.491967349028327

0.558156305651438 -0.475293187893358 -0.0950586375786717

1.42587956368008]

1.16189500386223 -1.42639944777590 -0.387298334620742

0.0620173672946042

中心化后的CX=[1 -0.705696796172046 -0.705696796172046 0.203403465210950 -0.256345570292959

1

0.203403465210950 -0.256345570292959

-0.672538245981366 -0.147264208102145

-0.672538245981366 -0.147264208102145

1.00000000000000 -0.243671839571301 -0.243671839571301

1.00000000000000]

-0.476833317500088

B =[ -0.540317202831573 0.641074597585313 -0.522604592295199 0.154806720677959

0.0755458199212945 0.689188027129422

0.349477215060613 0.0748446964757021 -0.930890313976548

0 0

0 0

-0.00843003586488852 -0.683240785506562 -0.724512734678981

-0.443129787770370

-0.00548589507340027 -0.330829272484802]

C =[2.10747518049160 0 0 0 0

1.09568137636810 0 0 0

0.796843443140303 0

0]

U =[ -0.0312070382081416 0.758653098618863 -0.645576459596182 -0.0818696008145394

0.517595749718580 -0.693628690755751 -0.500000000000000

0.104611746730827 0.202501128115206 -0.824708624564613

0.404353630380540 0.540577772320809 -0.251302711945598 0.689188027129421

-0.500000000000000 -0.500000000000000 -0.500000000000000] -0.476833317500088

V =[0.540317202831573 0.0755458199212939 -0.641074597585312

0.349477215060614

-0.00843003586488825 -0.683240785506563

0.522604592295200 -0.154806720677959

0.0748446964757020 -0.930890313976548

0 0

-0.724512734678981 -0.443129787770369

-0.00548589507340045 -0.330829272484801]

S =[2.51444338601504 0 0 0 0

1.81302071943602 0 0 0

1.54613399465276 0 0

4.89603409147001e-16]

分析数据可得:

1、 矩阵归一化后,PCA的特征值和SVD的奇异值都明显减小。 2、 中心化对奇异值的影响较小,但对特征向量影响较大。

选作问题:

6. 假设数据源是一系列的图像,每幅图像都是一个矩阵。分别用经典的主成分 分析方法和奇异值分解方法计算特征脸。注意数据的中心化与归一化处理的 影响。

分析:选取9 张人脸图像作为数据源,大小为100×100(这里的人脸图像要 求大小相同,人眼部位尽可能对齐),把图像存储为[100×100, 9]的矩阵,每 列表示一张图像,每行代表同一个位置的像素,因此一共有100×100 个维度。 中心化时各自减去每个维度的均值,由于图像数据的量纲一样,所以不需要 归一化。9 张人脸为:(matlab 保存后得到的图像效果比matlab 中显示的差)

a. 采取 PCA 计算特征脸。因为X 是 10000×9 的矩阵,直接计算XXT会内

存泄露,所以改为对X T X 进行特征值分解,取前8个特征值。(pca_face.m)

b. 采取SVD 计算特征脸,取前8 个特征值,(svd_face.m)

奇异值分解与主成分分析.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)