我有一个矩阵,样品和特征,我在 Matlab 中使用 PCA 函数进行降维。
X = load(dataset);
coeff = pca(X);
它产生了一个矩阵。但我不明白它到底在产生什么,我无法理解下一步该做什么。任何人都可以帮助我理解吗?我的主要目标是减少原始矩阵的维度。
我有一个矩阵,样品和特征,我在 Matlab 中使用 PCA 函数进行降维。
X = load(dataset);
coeff = pca(X);
它产生了一个矩阵。但我不明白它到底在产生什么,我无法理解下一步该做什么。任何人都可以帮助我理解吗?我的主要目标是减少原始矩阵的维度。
如果您键入help pca,您将看到有关该功能的大量信息。
如果只输出一个参数,它将返回主系数,有时称为载荷。这您收到的矩阵包含第一行中的第一个加载,第二行中的第二个,依此类推。
如果你要求两个输出,你会得到
[V, U] = pca(X);
其中 V 包含载荷,U 包含得分值。您通过 重建输入数据U*V'。
为了执行降维,您必须选择n两个矩阵的第一个分量为U(:, 1:n)和V(:, 1:n)并执行近似重建为U(:, 1:n)*V(:, 1:n)'。
PCA 的输出是主成分的矩阵。因此,该矩阵包含一组新信号,但现在这些组件根据它们捕获的数据集方差的多少进行排序。矩阵中的第一个主成分描述了与捕获最少coeff(1,:)的最后一个成分的最大方差。coeff(27578,:)所以你只需要选择您希望将新输入减少到这样的尺寸coeff(1:k,:)
这里建议的一种方法是选择第一个仍然捕获数据集 99% 的方差的组件。因此,您将减少维度输入,但仍能很好地描述您的数据。