基于MATLAB的PCA特征降维

基于MATLAB的PCA特征降维,matlab,pca,Matlab,Pca,我完全搞不懂PCA。我有一张尺寸为90x60x12x350的4D图像。这意味着每个体素是一个大小为350(时间序列)的向量 现在,我将3D图像(90x60x12)分割为立方体。假设一个立方体包含n个体素,那么我有n个大小为350的向量。我想把这个n向量简化为一个向量,然后计算所有立方体的所有向量之间的相关性 所以对于一个立方体,我可以构造矩阵M,我只是把每个体素放在一个接一个的位置,即M=[v1 v2 v3…vn],每个v的大小都是350 现在我可以使用[coeff,score,潜伏,~,exp

我完全搞不懂PCA。我有一张尺寸为90x60x12x350的4D图像。这意味着每个体素是一个大小为350(时间序列)的向量

现在,我将3D图像(90x60x12)分割为立方体。假设一个立方体包含n个体素,那么我有n个大小为350的向量。我想把这个
n
向量简化为一个向量,然后计算所有立方体的所有向量之间的相关性

所以对于一个立方体,我可以构造矩阵
M
,我只是把每个体素放在一个接一个的位置,即
M=[v1 v2 v3…vn]
,每个
v
的大小都是350

现在我可以使用
[coeff,score,潜伏,~,explained]=PCA(M)在Matlab中应用PCA并获取第一个组件。现在我的困惑开始了

  • 我应该转置矩阵
    M
    ,即
    PCA(M')

  • 我应该选择coeff还是score的第一列

  • 第三个问题现在有点不相关了。让我们假设我们有一个 矩阵
    A=rand(30100)
    其中行是数据点和 列是特征。现在,我想降低 保留特征向量,但保留所有数据点

    如何使用PCA进行此操作

    当我做
    [coeff,score,潜伏期,~,解释]=pca(M)然后
    系数为100x29,分数为30x29。我是
    完全糊涂了

  • 是的,根据pca的帮助,“X行对应于观察值,列对应于变量。”

  • score
    只告诉您主成分空间中
    M
    的表示。您需要
    coeff
    的第一列

  • 是的,根据pca的帮助,“X行对应于观察值,列对应于变量。”

  • score
    只告诉您主成分空间中
    M
    的表示。您需要
    coeff
    的第一列


  • 我不同意上面的答案

    [coeff,score]=pca(A)
    
    其中,A的行作为观察值,列作为要素

    如果A有3个特征和>3个观察值(比如100),并且您想要2维的“特征”,那么就说矩阵B(B的大小是100X2)。你应该做的是:

    B = score(:,1:2);
    

    我不同意上面的答案

    [coeff,score]=pca(A)
    
    其中,A的行作为观察值,列作为要素

    如果A有3个特征和>3个观察值(比如100),并且您想要2维的“特征”,那么就说矩阵B(B的大小是100X2)。你应该做的是:

    B = score(:,1:2);
    

    @ribond我应该在应用PCA(M列上的z分数)之前应用z分数(零均值,单位方差),还是应该在将特征向量输入到我的机器学习分类器(每个特征向量上的z分数)之前应用z分数(零均值,单位方差)?@ribond我应该在应用PCA(M列上的z分数)之前应用z分数(零均值,单位方差)或者我应该在将特征向量输入到我的机器学习分类器之前应用它(每个特征向量上的z分数)?