close

===2012.06.22更新================================ 

根據matlab文件
pca 的指令是使用princomp

有用到的應該是這行指令:

[COEFF,SCORE,latent] = princomp(a)   <----------指令


COEFF =

    0.4414   -0.1904   -0.3198    0.8165         0
    0.4394   -0.3621    0.8220   -0.0000   -0.0000
    0.4716    0.8719    0.1319   -0.0000    0.0000
    0.4414   -0.1904   -0.3198   -0.4082   -0.7071
    0.4414   -0.1904   -0.3198   -0.4082    0.7071


SCORE =

  -10.1968    0.1379   -0.0841    0.0000    0.0000
   -7.9615    0.0765   -0.0895    0.0000    0.0000
   -5.7263    0.0152   -0.0950   -0.0000   -0.0000
   -3.4911   -0.0461   -0.1004    0.0000   -0.0000
   -0.8164   -0.4696    0.7162    0.0000   -0.0000
    0.9793   -0.1688   -0.1113    0.0000   -0.0000
    3.2146   -0.2302   -0.1168    0.0000    0.0000
    6.3930    1.4522    0.1417    0.0000   -0.0000
    7.6850   -0.3529   -0.1277    0.0000   -0.0000
    9.9202   -0.4142   -0.1331    0.0000    0.0000


latent =

   46.9598
    0.3038
    0.0697
    0.0000
    0.0000 
 
 
COEFF 是指  eigenvector 

latent 是指  eigenvalue 

然後 SCORE ......好像是一種對應的觀察分數(亂翻英文orz)


但是真的讓我做完作業的資料是這份大陸的資料:
 (雖然專有名詞我真的看無,翻譯真的太特別...)

http://wenku.baidu.com/view/bf64f435a32d7375a417804d.html 


>> C = cov(a)

C =

    9.1667    9.1111    9.7222    9.1667    9.1667
    9.1111    9.1556    9.6444    9.1111    9.1111
    9.7222    9.6444   10.6778    9.7222    9.7222
    9.1667    9.1111    9.7222    9.1667    9.1667
    9.1667    9.1111    9.7222    9.1667    9.1667

>> [P,Lambda] = eig(C)

P =

    0.1698   -0.7987    0.3198    0.1904    0.4414
   -0.0000    0.0000   -0.8220    0.3621    0.4394
    0.0000    0.0000   -0.1319   -0.8719    0.4716
    0.6068    0.5463    0.3198    0.1904    0.4414
   -0.7765    0.2523    0.3198    0.1904    0.4414


Lambda =

   -0.0000         0         0         0         0
         0    0.0000         0         0         0
         0         0    0.0697         0         0
         0         0         0    0.3038         0
         0         0         0         0   46.9598

>> S1 = a*P

S1 =

         0   -0.0000    0.0054    0.0613    2.2352
         0   -0.0000    0.0109    0.1227    4.4704
         0   -0.0000    0.0163    0.1840    6.7057
         0   -0.0000    0.0218    0.2454    8.9409
   -0.0000   -0.0000   -0.7948    0.6688   11.6155
         0   -0.0000    0.0327    0.3681   13.4113
         0   -0.0000    0.0381    0.4294   15.6465
    0.0000    0.0000   -0.2203   -1.2530   18.8250
         0   -0.0000    0.0490    0.5521   20.1170   -0.0000   -0.0000    0.0545    0.6134   22.3522 

 
然後roger用這個投影片教我

http://iem.csu.edu.tw/member/hunght/%E6%B4%AA%E5%83%96%E9%BB%9B%E8%80%81%E5%B8%AB%E6%95%99%E6%9D%90(IEM)/Principal%20Component%20Analysis.pdf

因為我要將資料降成一維

所以我要找最大的 eigenvalue 所對應的 eigenvector  

也就是 Lambda  裡的最大值 46.9598 所對應到的P 是
 0.4414
 0.4394
 0.4716
 0.4414
 0.4414

p.s http://www.mathworks.com/help/techdoc/ref/eig.html       
      ↑↑↑這裡說對應的是columns

心情:

應該是做好了...
今天好累喔.......

還有...... roger 
生日快樂
 
=============================================== 

===2012.06.21更新=================================

老師的作業....../口\
 
基本使用方法

google 搜尋 "matlab 張智星" 就會有很基本的一些指令 <---- 這是學長告訴我的

http://www.cs.nthu.edu.tw/~jang/mlbook/ch1/ 

有用到的地方是

取出矩陣特定的值

例如矩陣A等於

A = [1 2 3;4 5 6; 7 8 9] <----指令

A=
1 2 3
4 5 6
7 8 9

取出部份矩陣B 
 
B = A(2,1:3) % <----指令

A=
4 5 6
 
所以如果要取值的就是

B = A(1:3,2) <-------指令

A=
2
5
8


還有我自己找的

http://www.ecaa.ntu.edu.tw/weifang/matlab/matlabintro5.htm 
 
如果要取斜對角


diag(A)  <-------------指令
ans =
 1
 5
 9
diag(ans)  <---------------指令
ans =

 1 0 0
 0 5 0

 0 0 9 
 

對SVD降維方法

http://www.wretch.cc/blog/xken831/3723197     <--------這就是答案啊!!!!! 

http://tiredapple.pixnet.net/blog/post/4756622-svd%E5%A5%87%E7%95%B0%E5%80%BC%E5%88%86%E8%A7%A3 
 
matlab 指令打法

http://www.wretch.cc/blog/xken831/3723194 

對一個矩陣a(已經先打好了)做SVD我們可以在matlab打

[U D V] = svd(a) <-----------指令

U=
左矩陣, 由a^a(T)的eigenvalue所對應的eigenvector所形成 // p.s ----> a(T) : a的transpose matrix
D=
是一個a^a(T)的eigenvalue開根號的對角矩陣
V=
a(T)^a的eigenvalues所對應的eigenvector所形成的矩陣

p.s U D V 三個數可以隨便亂打,總之就是代表SVD那三個矩陣

 
******************************************************
PCA

什麼是PCA?

http://www.caogenit.com/caogenxueyuan/yingyongfangxiang/rengongzhineng/1343.html    
↑↑↑ 這網址後面的圖掛掉了,而且還是簡體,但還是可以參考,因為我真的不知道PCA是什麼啊啊啊啊啊啊啊啊啊啊啊啊啊啊

在matlab如果要用pca的話是用princomp 這個指令

http://www.mathworks.com/help/toolbox/stats/princomp.html 
 


心情:

作業...遲交的很誇張

但是我還是想要學會阿......

加油呀!!!
 
 ===========================================
 




 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Hui 的頭像
    Hui

    daisuki's Box

    Hui 發表在 痞客邦 留言(0) 人氣()