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