在包含解决方案的底部编辑
我对我的数据集进行PCA,得到特征向量、特征值和平均值。
我想画出改变一个主成分的效果,但我不知道如何改变。
所以我想创造一个这样的情节:
所以这个公式应该是mean + Pb
用p表示特征向量和bb = P.T * (x - mean)
但我不知道用什么来表示x。
根据Cootes的主动形状模型文件,另一种可能性是b = (b1 b2 .. bt).T
所以是一个权重向量。这对我来说更有意义,这样我可以把第一个b的权重设为-3*sqrt(特征值)并绘制结果。但是我有维度问题。在
pca的输入数据是[20,160],所以它返回平均值的[160],其中N是我想要保留的主成分的数量,我们选择5。最后是[N]个特征值。
这样我就不能做Pb了,因为P是[160],我应该用另一个[160]来做点积?
我很困惑如何做这件事,任何帮助将不胜感激!在
编辑:
我解决了问题。
当试图绘制第一个主成分的效果时,我只取了我的特征向量的第一列,这是错误的。在
你应该做的是取所有的特征向量p,在我的例子中[160,5],然后创建一个新的向量b,维数为[5]。b由所有的零组成,除了你想改变的主成分的指数,你在其中放了-2*sqrt(特征值_i),来描绘主成分i变化的影响,左边有2个标准差。
所以这导致x = mu + P * b
mu=mean,p是完整的特征向量集,b是包含变量权重的向量。在