我使用PCA算法来减少维度。这是我在MATLAB中进行降维的代码:
%Definition of Input Data Matrix
X=[2 13 4 5 4;
5 14 2 8 5;
7 8 14 9 8;
16 5 8 9 22;
13 24 25 4 44]
% Calculation of Covarian Matrix.
covmat=cov(X)
%Caculation of Eigenvalues and Eigenvectors
eigval=eig(covmat)
[eigvec,D]=eig(covmat)
% Sorting of EigenValues and EigenVectors
[eigval,index]=sort(eigval,'descend');
eigvec=eigvec(:,index);
W=eigvec;
%new data by EigenVectors
T=X*W;
%dimension reduction N=your value
TN=X*W(:,1:N);
在最后一行中,我们必须将N
设置为所需的维度数。 PCA试图最小化平均投影误差,数据的总变化可以定义为数据的平均值,表示训练样例离原点有多远。
通常,我们选择N来满足以下条件:
如何在matlab中计算这个值来定义N?
有关PCA的更多信息,请访问here.