这个问题在这里已有答案:
我正在尝试使用Matlab中的pca执行降维 . 从下面的代码中,我得到系数,得分,潜在和t平方 . 但是,如何从pc分析中减少实际尺寸仍然是模糊的 . 我想要做的是将列数(在本例中为3)减少到1或2.你能告诉我怎么做吗?
matrix = [ 1 2 3; 4 3 2; 1 3 5; 4 2 3; 1 2 3; 2 1 3]; [coeff, score, latent, tsquared] = pca(matrix);
coeff 是您的主要组件矩阵,只需通过删除任意数量的列(从末尾开始!)来截断它 . 换句话说 - 为了投射到1维,取第 coeff 的第一列并乘以你的数据 . 如果要投影到2个维度 - 取两个第一列并相乘 . 您的数据是N x d,coeff是d x d,因此如果您将coeff限制为2列,则得到
coeff
X coeff_truncated = projected_data N x d d x 2 N x 2
如预期的 .
1 回答
coeff
是您的主要组件矩阵,只需通过删除任意数量的列(从末尾开始!)来截断它 . 换句话说 - 为了投射到1维,取第coeff
的第一列并乘以你的数据 . 如果要投影到2个维度 - 取两个第一列并相乘 . 您的数据是N x d,coeff是d x d,因此如果您将coeff限制为2列,则得到如预期的 .