1. 程式人生 > >PCA(matlab)學習,與記錄

PCA(matlab)學習,與記錄

目前 2.7 details 4.2 hot matlab 地址 統計 6.0

最近學習ML(Matlab),用到了PCA,參考了網上的一些資料,現在總結如下,以後忘記的話,可以回來看看。
參考地址:https://blog.csdn.net/qq1987924/article/details/45965431

先來看個例子:(借用參考地址的數據)
load hald; %載入matlab內部數據
[pc,score,latent,tsquare] = pca(ingredients); %調用pca分析函數
pc:是ingredients的協方差矩陣特征值對應的特征向量,排列按照特征值從大到小的順序排列。
負載矩陣pc =
  -0.0678 -0.6460 0.5673 0.5062
  -0.6785 -0.0200 -0.5440 0.4933
  0.0290 0.7553 0.4036 0.5156
  0.7309 -0.1085 -0.4684 0.4844
score:原數據集ingredients轉換到新空間的矩陣。
得分矩陣score =
  36.8218 -6.8709 -4.5909 0.3967
  29.6073 4.6109 -2.2476 -0.3958
  -12.9818 -4.2049 0.9022 -1.1261
  23.7147 -6.6341 1.8547 -0.3786
  -0.5532 -4.4617 -6.0874 0.1424
  -10.8125 -3.6466 0.9130 -0.1350
  -32.5882 8.9798 -1.6063 0.0818
  22.6064 10.7259 3.2365 0.3243
  -9.2626 8.9854 -0.0169 -0.5437
  -3.2840 -14.1573 7.0465 0.3405
  9.2200 12.3861 3.4283 0.4352
  -25.5849 -2.7817 -0.3867 0.4468
  -26.9032 -2.9310 -2.4455 0.4116
latent:
ingredients協方差矩陣對應的特征值,從大到小排列,其實也是score矩陣每一列的方差,方差越大,也就
代表數據越離散,表示的信息越多
517.7969
  67.4964
  12.4054
  0.2372
tsquare:
5.6803
  3.0758
  6.0002
  2.6198
  3.3681
  0.5668
  3.4818
  3.9794
  2.6086
  7.4818
  4.1830
  2.2327
  2.7216
這是一個統計量,用來衡量多變量之間的距離,這個距離是指樣本觀測值到數據集中心的距離。(不懂)
tsquare(i)=score(i,:)*inv(diag(latent))*score(i,:)‘
score(i,:) 得分矩陣的第i行
inv(diag(latent)):特征值組成的對角矩陣的 逆

下面按照參考blo裏面,進行驗證
[V,D] = eig(cov(ingredients))
  V =特征向量
  0.5062 0.5673 0.6460 -0.0678
  0.4933 -0.5440 0.0200 -0.6785
  0.5156 0.4036 -0.7553 0.0290
  0.4844 -0.4684 0.1085 0.7309
  D =特征值
  0.2372 0 0 0
  0 12.4054 0 0
  0 0 67.4964 0
  0 0 0 517.7969
pca是按特征值的大小排列的,這裏沒有按大小順序排列,僅僅計算了特征值和特征向量。

至於選取幾個主元,常用的方法也就是方差累計百分比法。

今天學習的時候,看到師姐的論文裏面有用到Hotelling T2圖,T2是多個變量共同累計的標量,通過單變量控制圖的形式來監控多變量工況,T2統計量的控制限

在二維面上表示一個橢圓。

目前還在看的過程中,還不懂什麽意思。

大家有懂的,請多多指教~~~

PCA(matlab)學習,與記錄