假设有一个矩阵B,其大小为a 500*1000 double(这里,500代表观察1000的数量并代表特征的数量).
sigma是协方差矩阵B,D是一个对角矩阵,其对角元素是特征值sigma.假设A是协方差矩阵的特征向量sigma.
我有以下问题:
我需要选择k = 800对应于具有最大幅度的特征值的第一个特征向量来对所选特征进行排序.最终的矩阵命名Aq.我怎样才能在MATLAB中做到这一点?
这些选定的特征向量是什么意思?
看来最终的矩阵的大小Aq是1000*800 double有一次我计算Aq.时间点/观察信息500已经消失.对于最终的矩阵Aq,什么是价值1000矩阵Aq现在代表什么呢?此外,800矩阵中的值Aq现在代表什么?
我在100张图片上使用PCA.我的训练数据是442368x100 double矩阵.442368是特征,100是图像的数量.这是我找到特征向量的代码.
[ rows, cols] = size(training);
maxVec=rows;
maxVec=min(maxVec,rows);
train_mean=mean(training,2);
A=training-train_mean*ones(1,cols);
A=A'*A;
[evec,eval]=eig(A);
[eval ind] = sort(-1*diag(eval));
evec= evec(:, ind(1:100));
Run Code Online (Sandbox Code Playgroud)
现在evec是一个100x100倍的特征向量矩阵,现在我有100个特征向量排序.
问题:
现在,如果我想使用上面计算的特征向量转换我的测试数据,那么我该如何使用这些特征向量?我的测试数据是442368x50 double我的特征向量矩阵100x100 double.内部矩阵尺寸不一致.如何找到测试数据和特征向量矩阵的点积?