PCA主成分分析 matlab 函式 程式

2021-10-07 16:34:22 字數 1223 閱讀 3644

% pca主成分分析函式

% dataset 原始資料(即需要降維的資料,n維,列為維數)

% k 需要降到的維數

% finaldata 降維後的資料

% recondata 降維後的資料恢復得到的原始資料

% function [ finaldata,recondata ] = pca( dataset, k )

[m,n] = size(dataset); % m個n維資料

%% 去除平均值

%取平均值

datasetmean = mean(dataset);

%減去平均值

datasetadjust = zeros(m,n);

for i = 1 : m

datasetadjust(i , :) = dataset(i , :) - datasetmean;

end

%% 計算協方差矩陣

datacov = cov(datasetadjust);

%% 計算協方差矩陣的特徵值d與特徵向量v

[v, d] = eig(datacov);

% 將特徵值矩陣轉換成向量

d = zeros(1, n);

for i = 1:n

d(1,i) = d(i,i);

end

%% 對特徵值排序

[maxd, index] = sort(d);

%% 選取前k個最大的特徵值

% maxd_k = maxd(1, (n-k+1):n);

index_k = index(1, (n-k+1):n);

% 對應的特徵向量

v_k = zeros(n,k);

for i = 1:k

v_k(:,i) = v(:,index_k(1,i));

end

%% 轉換到新的空間

finaldata = datasetadjust*v_k;

% 在原圖中找到這些點

recondata = finaldata * v_k';

for i = 1 : m

recondata(i , :) = recondata(i , :) + datasetmean;

end

end

Matlab 主成分分析(PCA)

是一種資料降維方法。保留具有代表性的主成分,捨棄比重較小的成分。演算法步驟 matlab 實現 clear all close all clc load data.mat m,n size x step1 預處理資料。均值標準化 零均值 特徵縮放 x x repmat mean x 50,1 s s...

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對應的...