我对PCA感到困惑 . 我有一个尺寸为90x60x12x350的4D图像 . 这意味着每个体素是大小为350的向量(时间序列) .
现在我将3D图像(90x60x12)分成立方体 . 所以让我们说一个立方体包含n个体素,所以我有n个大小为350的向量 . 我想将这个 n
向量减少到只有一个向量,然后计算所有立方体的所有向量之间的相关性 .
所以对于一个立方体,我可以构造矩阵 M
,我只是将每个体素放在彼此之后,即 M = [v1 v2 v3 ... vn]
,每个 v
的大小为350 .
现在我可以使用 [coeff, score, latent, ~, explained] = pca(M);
并使用第一个组件在Matlab中应用PCA . 现在我的困惑开始了 .
-
我应该转置矩阵
M
,即PCA(M')
? -
我应该选择coeff或得分的第一列吗?
-
这第三个问题现在有点无关 . 假设我们有一个矩阵
A = rand(30,100)
,其中行是数据点,列是要素 . 现在我想减少特征向量的维数,但保留所有数据点 .
我怎么能用PCA做到这一点?
当我做 [coeff, score, latent, ~, explained] = pca(M);
时,coeff的维度为100x29,得分大小为30x29 . 我完全糊涂了 .
2 回答
是的,根据
pca
帮助,"Rows of X correspond to observations and columns to variables."score
只是告诉你M
在主成分空间中的表示 . 你想要coeff
的第一列 .我不同意上面的答案 .
其中A有行作为观察,列作为要素 .
如果A有3个特征和3个观察值(比方说100)并且你想要2个维度的“特征”,比如矩阵B(B的大小是100X2) . 你应该做的是: