我有一组10个3D矢量(作为x,y,z值),我被要求找到这个矢量阵列的两个主要分量矢量。
怎么办? 有什么计算? 我无法找到这个问题的简单数学运算。我在MATLAB和一些python库中找到了PCA函数,但我被要求进行所有计算。
感谢您的回答......
答案 0 :(得分:0)
PCA算法基于计算样本的协方差矩阵的第一特征向量。
为此,您可以使用MATLAB的cov
和eig
函数,如下所示:
X = rand(10,3) %generate samples randomly
NUM_OF_EIGENS = 2; %number of eigen vectors to extract
C = cov(X);
[principalComponents, eigenValues]= eigs(C,NUM_OF_EIGENS);
可以如下提取两个主要组成部分:
principalComponents(:,1)
principalComponents(:,2)