我正在尝试在 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
的第一列并乘以你的数据。如果你想投影到二维 - 取前两列并相乘。您的数据是 N x d,系数是 d x d,因此如果您将系数限制为 2 列,您将得到 p>
X coeff_truncated = projected_data
N x d d x 2 N x 2
根据需要。
关于matlab - 我怎样才能真正减少 PCA 的特征维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36366995/