我有一个矩阵,在D = 100维空间中包含我的N = 20个样本。现在,我希望在Matlab中编写自己的主成分分析(PCA)。我首先将X贬为X_0。X N = 20 D = 100 X X 0
我从某人的代码中了解到,在这种情况下,我们的维数比观测值大,我们不再对的协方差矩阵进行特征分解。取而代之的是,我们对\ frac {1} {N-1} X_0X_0 ^ T进行特征分解。为什么正确?
正常协方差矩阵的大小为,其中每个元素告诉我们二维之间的协方差。对我来说,甚至尺寸都不正确!它是N \ x N矩阵,那么它将告诉我们什么?两个观察值之间的协方差?
(续)如果是这样,则可以自由选择要分解的对象-明智的做法是分解可以更快/更有效地进行分解的对象。当
—
ttnphns 2015年
n<p
它需要较少的内存和更少的时间来分解XX'
,因为它是更小的尺寸。
@ttnphns很棒的解释。我现在明白了。但是,从特征
—
Sibbs赌博2015年
XX'
到PC 仍然存在问题。您能简短地告诉我如何吗?鉴于PC只是协方差矩阵的特征向量,我试图从XX'
协方差矩阵的本征向本征特征移动X'X
,但是失败了。
我得走了。也许@amoeba(在代数方面比我敏捷得多)或其他读者很快就会来这里帮助您。干杯。
—
ttnphns
@ttnphns:完成了:)
—
amoeba
X'X
和XX'
(以及SVD的X
和X'
)。在一种情况下所谓的“负载”在另一种情况下称为“ pc分数”,反之亦然。因为这两个都是坐标(例如参见)和轴,所以“主要尺寸”是相同的。