Matlab 主成分分析(PCA)

2021-07-14 16:53:02 字數 822 閱讀 9978

是一種資料降維方法。保留具有代表性的主成分,捨棄比重較小的成分。

###演算法步驟

###matlab**實現

clear all;

close all;

clc;

load data.mat

[m,n] = size(x);

%%step1:預處理資料。均值標準化(零均值),特徵縮放;

x = x - repmat(mean(x),50,1);

s = std(x,0,1);

x = x./repmat(s,50,1);

axis([-3 3 -3 3]);

hold on

plot(x(:, 1), x(:, 2), 'bo');

%%step2:計算協方差矩陣;

sigma = (x'*x)/m;

%%step3:對協方差矩陣進行特徵值分解,求解特徵值和特徵向量;

[u,s,v] = svd(sigma);%採用奇異值分解,可以對任意陣進行求解,而且在s的對角線上,非負且按降序排列,便於提取主成分.

%%step4:資料降維;

k = 1;

u = u(:,1:k);%提取主特徵向量

dr = x*u; %投影

%%step5:還原近似資料.

x_r = dr*u';%重構

plot(x_r(:, 1), x_r(:, 2), 'ro');

###效果圖

pca主成分分析 PCA主成分分析(中)

矩陣 matrix,很容易讓人們想到那部著名的科幻電影 駭客帝國 事實上,我們又何嘗不是真的生活在matrix中。機器學習處理的大多數資料,都是以 矩陣 形式儲存的。矩陣是向量的組合,而乙個向量代表一組資料,資料又是多維度的。比如每個人的都具有身高 體重 長相 性情等多個維度的資訊資料,而這些多維度...

MATLAB實現主成分分析 PCA

function ds,com num,pv,new score,new score s pca dr a,t pca dr 主成分降維及分析函式 輸入變數 a 原始資料 未標準化處理 t 設定累積貢獻率的閾值 輸出變數 ds 特徵值及貢獻率 com num 閾值t對應的主成分數 pv 閾值t對應的...

主成分分析PCA

主要參考這篇文章 個人總結 pca是一種對取樣資料提取主要成分,從而達到降維的目的。相比於上篇文章介紹到的svd降維不同,svd降維是指減少資料的儲存空間,資料的實際資訊沒有缺少。個人感覺pca更類似與svd的去噪的過程。pca求解過程中,涉及到了svd的使用。針對資料集d 假設di 的維度為 w ...