我使用以下方法计算了 PCA:
function [signals,V] = pca2(data)
[M,N] = size(data);
data = reshape(data, M*N,1);
% subtract off the mean for each dimension
mn = mean(data,2);
data = bsxfun(@minus, data, mean(data,1));
% construct the matrix Y
Y = data'*data / (M*N-1);
[V D] = eigs(Y, 10); % reduce to 10 dimension
% project the original data
signals = data * V;
我的问题是:
“信号”是训练集到特征空间的投影吗?
我在“Amir Hossein”代码中看到,“中心图像向量”(即上述代码中的“数据”)需要通过乘以特征空间基础来投影到“面空间”中。我真的不明白为什么使用居中图像向量完成投影? “信号”还不足以进行分类吗?
通过信号,我假设您的意思是问为什么我们要从图像的原始向量形式中减去平均值。
如果你考虑PCA;它试图在数据变化最大的地方为您提供最佳方向。然而,由于您的图像可能仅包含正值像素,因此这些像素将始终为正值,这会误导您,尤其是您的第一个也是最重要的特征向量。您可以搜索更多有关二阶矩矩阵的信息。但我会分享一个糟糕的绘画图像来解释它。对不起我的画。
请忽略星星的大小;
星星:您的数据
红线:特征向量;
正如您在 2D 中可以轻松看到的,将数据居中可以为主成分提供更好的方向。如果您跳过此步骤,您的第一个特征向量将偏离均值并导致较差的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)