精华内容
下载资源
问答
  • matlab pca 函数 输入输出数据的意义
    2021-04-22 01:33:04

    pca虽然看了好多遍,但是到实际应用的时候还是觉得,没那么顺手,主要是输入数据的格式,输出的结果到底是什么东西,搞不清楚。

    COEF=PCA(X)

    x是输入的数据,解释说,rows of x correspond to observations and comlums to variables,啥意思呢?我的理解是一行代表一个观测,打个比方,我们在统计摩托车的属性信息,这些属性包括很多,比如,价格,重量,加速情况,耗油量等等,那么每一行代表我们采样的一辆摩托车的这些属性值,假如我们采样了20台车,那么行数就是20,这些属性值假设有100个,那么x就是100列。这个是解释x的数据意义。我觉得是个andrew ng 机器学习里用的表示方法不一样,一般用一列表示一个obervation,行数代表属性值个数,matlab 里的表示刚好相反。这是输入数据的意义。

    下面看输出数据的意义,COEF,each column of coef contains coeffients for one principal component, chef里的每一列,代表一个主成分系数,输入数据是 20*100,即变量的维数是100,假设我们要降到1维,那么我们就用 x 乘以 coef 里的第一列 就得到原始数据的第一主成分,是20*1的结果。

    还有个专业名词叫loadings,也是coef 矩阵,其实这个COEF 对应于x协方差矩阵里的右奇异矩阵,具体见

    这个里面收藏的博文。

    未完待续。。。

    更多相关内容
  • 由于本人最近需要处理的数据特征太多,导致分类不准确,...整理了各位博主的伪代码,并写成matlab程序,然后自己利用matlab自带的pca函数进行计算,两种方法进行比较,程序已全副武装,只需要导入自己数据就能运行。
  • MATLAB pca函数使用指南

    千次阅读 2020-05-24 20:44:03
    因为pca在各个学科都有使用,每个学科对于名词的叫法都不太一样,使用的目的都不太一样,我就是单纯的想使用降维,发现matlab函数的pca函数的输入参数除了数据集X还有10个....弄了一段时间才明白....这里分享一下.有错误...

    转自:https://blog.csdn.net/qq_25800311/article/details/83385029

    matlab 自带函数pca的用法
         因为pca在各个学科都有使用,每个学科对于名词的叫法都不太一样,使用的目的都不太一样,我就是单纯的想使用降维,发现matlab函数的pca函数的输入参数除了数据集X还有10个....弄了一段时间才明白....这里分享一下.有错误和不清楚的还请大家指正

    数据集X(每行为一个样本,行数为样本数)
    - coeff = pca(X)
    - coeff = pca(X,Name,Value)
    - [coeff,score,latent] = pca(___)
    - [coeff,score,latent,tsquared] = pca(___)
    - [coeff,score,latent,tsquared,explained,mu] = pca(___)
    i.e 

    Input Argument 0
    X :--数据集 假设n个样本, 每个样本p维,则 X是n-by-p的matrix

    Input Argument 1
    'Algorithm' — Principal component algorithm
    'svd' (default) | 'eig' | 'als'
    解释:PCA 涉及到求协方差矩阵的特征向量, 在matlab 有3中算法
    默认 :SVD,
    eig (Eigenvalue decomposition )算法, 此算法当n(number of examples) > p (features) 时,速度快于SVD,但是计算的结果没有SVD精确
    als( Alternating least squares )算法,此算法为了处理数据集X中有少许缺失数据时的情况(i.e 0), 但是对于X为稀疏数据集(缺失数据过多)时,不好用

    Input Argument 2
    'Centered' — Indicator for centering columns
    true (default) | false
    解释:选择是否对数据进行中心化, 也是数据的特征是否进行零均值化(i.e.按列减去均值, 为了得到covariance            
            matrix), 如果选择了true,  则可用score*coeff'恢复中心化后的X, 若选择了false,则可用score*coeff'
            恢复原始的X

    默认:true(中心化)

    Input Argument 3
    'Economy' — Indicator for economy size output
    true (default) | false
    解释: 有时候输出的coeff(映射矩阵p-by-p)过大, 而且是没有必要的(因为我们要降维),所以可以只输出coeff(以及score,latent)的前d列,
    d是数据集的自由度,数据集没NAN的时候d=n-1; 具体的解释见matlab.总之如果将看见完整的PCA结果,可以设置为false.
    默认:true ,(默认ture以后对于初次使用matlab这个函数的人非常迷惑).

    Input Argument 4
    'NumComponents' — Number of components requested
    number of variables (default) | scalar integer
    解释:输出指定的components 也就是更为灵活的Economy,但是经过试验发现指定成分数 仅在小于d(自由度)时有效,大于d时无效;
    默认: number of variables ( i.e p,特征数目)

    Input Argument 5
    'Rows' — Action to take for NaN values
    'complete' (default) | 'pairwise' | 'all'
    解释: 此选项是为了智能处理数据集X中含有NAN的情况,
              complete: 计算之前.移除X中含有NAN的行(i.e 样本),计算完成后,含有NAN的行被重新插入到
                         score and tsquared相应的位置中(coeff呢?)
      pairwise :      首先这个选项必须配合 'Argorithm'中 'eig'进行使用.如果没有指定'eig'(默认svd),
                       当指定pairwise时,则会自动切换为eig; 指定为svd,则会发送warning message,
                       然后自动切换为eig;若指定为als, 则会发送warning message然后忽略 'Rows'此选项.
                            成功使用此选项时,若计算协方差(i,j)处值时遇到NAN,则使用X中第i或j列中不含NAN
                       的行此处来计算的协方差值.
        all : 当确定X中无缺失数据,使用'all',则pca会使用X中所有的数据,当遇到NAN时则会自动终止.
    默认:complete

    Input Argument 6
    'Weights' — Observation weights
    ones (default) | row vector
    解释: 基于observations(i.e 样本)的权重pca,有需求的可以自己查查

    Input Argument 7
    'VariableWeights' — Variable weights
    row vector | 'variance'
    解释:基于variables(i.e.features)的权重pca,有需求的自己查
    默认: 无默认值, 也就是默认不使用此选项

    Input Argument 8
    'Coeff0' — Initial value for coefficients
    matrix of random values (default) | p-by-k matrix
    解释: Initial value for the coefficient matrix coeff, 不是太看的懂,但是要配合'Algorithm'中的
             'als'使用
    默认:   p-by-random

    Input Argument 9
    'Score0' — Initial value for scores
    matrix of random values (default) | k-by-m matrix
    解释: Initial value for scores matri score.不是太看的懂,但是要配合'Algorithm'中的 'als'使用
    默认 : n-by-random

    Input Argument 10
    'Options' — Options for iterations
    structure(此用法是个结构体)
    解释:用于迭代的选项,仅配合'Algorithm'中的'als'使用. 因为'als'是使用迭代的方法进行计算的
          对这个不感兴趣, 有兴趣的可以去help一下
              附上help中的使用方法 opt = statset('pca'); opt.MaxIter = 2000; coeff =pca(X,'Options',opt);

    Output Argument 1
    coeff : 主成分系数 应该就是协方差矩阵的特征向量矩阵(也就是映射矩阵).
               完整输出的情况下是一个p-by-p 的matrix.每一列都是一个特征向量.按对应的特征值
               的大小,从大到小进行排列.
    Output Argument 2
    score: 进行旋转(也就是利用映射矩阵coeff进行)后的结果i.e. score = X * coeff.  n-by-p matrix
              这里有个坑 如果你使用pca时使用的是默认的中心化(i.e 不对'Centered'设置'false'),
              拿X *coeff 和score对比的时候, 记得把X中心化后再乘以coeff,之后再和score对比....;
              同样如果pca使用的是默认值, 恢复的X = score * coeff' (注意转置)是中心化后的数据

    Output Argument 3
    latent: 主成分方差 也就是各特征向量对应的特征值,从大到小进行排列

    Output Argument 4
    tsquared :层次不够 无法解释......

    Output Argument 5
    explained : 每一个主成分所贡献的比例,可以更直观的选择所需要降维的维数了,不用再用特征值去求了

    Output Argument 6
    mu: X 按列的均值,当前仅当 'Centered'置于'true'(默认值)时才会返回此变量
     

     


    [pc,score,latent,tsquare] = pca(feature);%我们这里需要他的pc和latent值做分析

    feature是被降维的特征,每一行是一个特征,列数代表总的特征个数,比如一个图片的HOG特征是96维,总共有8000个HOG特征,那么feature的维度是8000×96,我们的目标就是将其降维(假设将96维降到50维,)那么我们期望的降维后feature就变成了我们需要的feature_after_PCA:8000×50

    latent用来计算降维后取多少维度能够达到自己需要的精度, 
    通过下面的代码运行结果可以得到取pc中对应每一维度对原始数据的精度:
     

    cumsum(latent)./sum(latent)
        0.2763
        0.3954
        0.8765
        0.8854
        0.8931
        0.8995
        0.9055
        0.9111
        0.9808
        0.9819
        0.9828
        0.9838
        0.9846
        0.9854
        0.9862
        0.9869
        0.9876
        0.9883
        0.9999
        1.0000
    ---------------------
    

    结果应该是有96维,但是太长,这里随机删减了一部分,我们可以看到只去取第一维的话和原始数据的准确度只有27%,很低,取全部的维度最后的精度就是100%,如果我们觉得精度达到90%就能接受的话我们就只需要取精度为90%对应的维度,这里假设第50维的精度是90%. 
    因此我们需要取pc中的1:50列来做最后的变换矩阵:
     

    tran=pc(:,1:50);

    因此我们最终的feature降维后的矩阵feature_after_PCA就通过下式计算:

     
    1. feature= bsxfun(@minus,feature,mean(feature,1));

    2. feature_after_PCA= feature*tran;

    至此我们PCA降维完成.这里需要人工介入的地方就是选取多少维度来确定和原始数据的精度问题.

    补充:上面计算feature_after_PCA的方法是正确的,但是pca函数其实已经给出了所有的转换后矩阵表示,也就是输出的score项,因此在确定需要降维到50维度以后,只需要取score中对应的列就能得到feature_after_PCA:
     

    feature_after_PCA=score(:,1:50);
    展开全文
  • matlab pca函数的使用方法

    千次阅读 2018-12-10 20:12:31
    转载自 ...matlab 自带函数pca的用法 因为pca在各个学科都有使用,每个学科对于名词的叫法都不太一样,使用的目的都不太一样,我就是单纯的想使用降维,发现matlab函数pca...

    转载自 https://blog.csdn.net/qq_29007291/article/details/54425356
    亦可参考 https://www.cnblogs.com/denny402/p/4020831.html

    matlab 自带函数pca的用法

    因为pca在各个学科都有使用,每个学科对于名词的叫法都不太一样,使用的目的都不太一样,我就是单纯的想使用降维,发现matlab函数的pca函数的输入参数除了数据集X还有10个…弄了一段时间才明白…这里分享一下.有错误和不清楚的还请大家指正

    数据集X(每行为一个样本,行数为样本数)

    • coeff = pca(X)
    • coeff = pca(X,Name,Value)
    • [coeff,score,latent] = pca(___)
    • [coeff,score,latent,tsquared] = pca(___)
    • [coeff,score,latent,tsquared,explained,mu] = pca(___)
      i.e

    Input Argument 0
    X :–数据集 假设n个样本, 每个样本p维,则 X是n-by-p的matrix

    Input Argument 1
    ‘Algorithm’ — Principal component algorithm
    ‘svd’ (default) | ‘eig’ | ‘als’
    解释:PCA 涉及到求协方差矩阵的特征向量, 在matlab 有3中算法
    默认 :SVD,
    eig (Eigenvalue decomposition )算法, 此算法当n(number of examples) > p (features) 时,速度快于SVD,但是计算的结果没有SVD精确
    als( Alternating least squares )算法,此算法为了处理数据集X中有少许缺失数据时的情况(i.e 0), 但是对于X为稀疏数据集(缺失数据过多)时,不好用

    Input Argument 2
    ‘Centered’ — Indicator for centering columns
    true (default) | false
    解释:选择是否对数据进行中心化, 也是数据的特征是否进行零均值化(i.e.按列减去均值, 为了得到covariance
    matrix), 如果选择了true, 则可用scorecoeff’恢复中心化后的X, 若选择了false,则可用scorecoeff’
    恢复原始的X

    默认:true(中心化)

    Input Argument 3
    ‘Economy’ — Indicator for economy size output
    true (default) | false
    解释: 有时候输出的coeff(映射矩阵p-by-p)过大, 而且是没有必要的(因为我们要降维),所以可以只输出coeff(以及score,latent)的前d列,
    d是数据集的自由度,数据集没NAN的时候d=n-1; 具体的解释见matlab.总之如果将看见完整的PCA结果,可以设置为false.
    默认:true ,(默认ture以后对于初次使用matlab这个函数的人非常迷惑).

    Input Argument 4
    ‘NumComponents’ — Number of components requested
    number of variables (default) | scalar integer
    解释:输出指定的components 也就是更为灵活的Economy,但是经过试验发现指定成分数 仅在小于d(自由度)时有效,大于d时无效;
    默认: number of variables ( i.e p,特征数目)

    Input Argument 5
    ‘Rows’ — Action to take for NaN values
    ‘complete’ (default) | ‘pairwise’ | ‘all’
    解释: 此选项是为了智能处理数据集X中含有NAN的情况,
    complete: 计算之前.移除X中含有NAN的行(i.e 样本),计算完成后,含有NAN的行被重新插入到
    score and tsquared相应的位置中(coeff呢?)
    pairwise : 首先这个选项必须配合 'Argorithm’中 ‘eig’进行使用.如果没有指定’eig’(默认svd),
    当指定pairwise时,则会自动切换为eig; 指定为svd,则会发送warning message,
    然后自动切换为eig;若指定为als, 则会发送warning message然后忽略 ‘Rows’此选项.
    成功使用此选项时,若计算协方差(i,j)处值时遇到NAN,则使用X中第i或j列中不含NAN
    的行此处来计算的协方差值.
    all : 当确定X中无缺失数据,使用’all’,则pca会使用X中所有的数据,当遇到NAN时则会自动终止.
    默认:complete

    Input Argument 6
    ‘Weights’ — Observation weights
    ones (default) | row vector
    解释: 基于observations(i.e 样本)的权重pca,有需求的可以自己查查

    Input Argument 7
    ‘VariableWeights’ — Variable weights
    row vector | ‘variance’
    解释:基于variables(i.e.features)的权重pca,有需求的自己查
    默认: 无默认值, 也就是默认不使用此选项

    Input Argument 8
    ‘Coeff0’ — Initial value for coefficients
    matrix of random values (default) | p-by-k matrix
    解释: Initial value for the coefficient matrix coeff, 不是太看的懂,但是要配合’Algorithm’中的
    'als’使用
    默认: p-by-random

    Input Argument 9
    ‘Score0’ — Initial value for scores
    matrix of random values (default) | k-by-m matrix
    解释: Initial value for scores matri score.不是太看的懂,但是要配合’Algorithm’中的 'als’使用
    默认 : n-by-random

    Input Argument 10
    ‘Options’ — Options for iterations
    structure(此用法是个结构体)
    解释:用于迭代的选项,仅配合’Algorithm’中的’als’使用. 因为’als’是使用迭代的方法进行计算的
    对这个不感兴趣, 有兴趣的可以去help一下
    附上help中的使用方法 opt = statset(‘pca’); opt.MaxIter = 2000; coeff =pca(X,‘Options’,opt);

    Output Argument 1
    coeff : 主成分系数 应该就是协方差矩阵的特征向量矩阵(也就是映射矩阵).
    完整输出的情况下是一个p-by-p 的matrix.每一列都是一个特征向量.按对应的特征值
    的大小,从大到小进行排列.

    Output Argument 2
    score: 进行旋转(也就是利用映射矩阵coeff进行)后的结果i.e. score = X * coeff. n-by-p matrix
    这里有个坑 如果你使用pca时使用的是默认的中心化(i.e 不对’Centered’设置’false’),
    拿X *coeff 和score对比的时候, 记得把X中心化后再乘以coeff,之后再和score对比…;
    同样如果pca使用的是默认值, 恢复的X = score * coeff’ (注意转置)是中心化后的数据

    Output Argument 3
    latent: 主成分方差 也就是各特征向量对应的特征值,从大到小进行排列

    Output Argument 4
    tsquared :层次不够 无法解释…

    Output Argument 5
    explained : 每一个主成分所贡献的比例,可以更直观的选择所需要降维的维数了,不用再用特征值去求了

    Output Argument 6

    mu: X 按列的均值,当前仅当 ‘Centered’置于’true’(默认值)时才会返回此变量

    展开全文
  • 使用MATLAB自带的PCA函数进行人脸识别-princomp_face_recognition.rar replyreload = ',' 2061347; 本帖最后由 heawjc 于 2013-5-7 01:25 编辑 目前网络上关于PCA的人脸识别大都是没有调用MATLAB自带的PCA接口来...
  • matlabpca函数说明

    2021-04-18 03:52:11
    PCAmatlab中的实现举例以下资料来自matlab的help,翻译和注解部分由笔者添加:(重点部分添加了翻译!)princomp-----函数名称Principal component analysis (PCA) on dataSyntax------函数调用语法[COEFF,SCORE] = ...

    PCA在matlab中的实现举例

    以下资料来自matlab的help,翻译和注解部分由笔者添加:(重点部分添加了翻译!)

    princomp-----函数名称

    Principal component analysis (PCA) on data

    Syntax------函数调用语法

    [COEFF,SCORE] = princomp(X)

    [COEFF,SCORE,latent] = princomp(X)

    [COEFF,SCORE,latent,tsquare] = princomp(X)

    [...] = princomp(X,'econ')

    Description -----函数描述

    COEFF = princomp(X)

    performs principal components analysis (PCA) on the n-by-p data matrix X, and returns the principal component coefficients, also known as loadings. Rows of X correspond to observations, columns to variables. COEFF is a p-by-p matrix, each column containing coefficients for one principal component. The columns are in order of decreasing component variance.

    在n行p列的数据集X上做主成分分析。返回主成分系数。X的每行表示一个样本的观测值,每一列表示特征变量。COEFF是一个p行p列的矩阵,每一列包含一个主成分的系数,列是按主成分变量递减顺序排列。(按照这个翻译很难理解,其实COEFF是X矩阵所对应的协方差阵V的所有特征向量组成的矩阵,即变换矩阵或称投影矩阵,COEFF每列对应一个特征值的特征向量,列的排列顺序是按特征值的大小递减排序,后面有具体例子解释,见

    说明1

    )

    princomp centers X by subtracting off column means, but does not rescale the columns of X. To perform principal components analysis with standardized variables, that is, based on correlations, use princomp(zscore(X)). To perform principal components analysis directly on a covariance or correlation matrix, use pcacov.

    计算PCA的时候,MATLAB自动对列进行了去均值的操作,但是并不对数据进行规格化,如果要规格化的话,用princomp(zscore(X))。另外,如果直接有现成的协方差阵,用函数pcacov来计算。

    [COEFF,SCORE] = princomp(X)

    returns SCORE, the principal component scores; that is, the representation of X in the principal component space. Rows of SCORE correspond to observations, columns to components.

    返回的SCORE是对主分的打分,也就是说原X矩阵在主成分空间的表示。SCORE每行对应样本观测值,每列对应一个主成份(变量),它的行和列的数目和X的行列数目相同。

    [COEFF,SCORE,latent] = princomp(X)

    returns latent, a vector containing the eigenvalues of the covariance matrix of X.

    返回的latent是一个向量,它是X所对应的协方差矩阵的特征值向量。

    [COEFF,SCORE,latent,tsquare] = princomp(X)

    returns tsquare, which contains Hotelling's T2 statistic for each data point.

    返回的tsquare,是表示对每个样本点Hotelling的T方统计量(我也不很清楚是什么东东)。

    The scores are the data formed by transforming the original data into the space of the principal components. The values of the vector latent are the variance of the columns of SCORE. Hotelling's T2 is a measure of the multivariate distance of each observation from the center of the data set.

    所得的分(scores)表示由原数据X转变到主成分空间所得到的数据。latent向量的值表示SCORE矩阵每列的方差(见

    说明2

    )。Hotelling的T方是用来衡量多变量间的距离,这个距离是指样本观测值到数据集中心的距离。

    When n <= p, SCORE(:,n:p) and latent(n:p) are necessarily zero, and the columns of COEFF(:,n:p) define directions that are orthogonal to X.

    [...] = princomp(X,'econ')

    returns only the elements of latent that are not necessarily zero, and the corresponding columns of COEFF and SCORE, that is, when n <= p, only the first n-1. This can be significantly faster when p is much larger than n.

    当维数p超过样本个数n的时候,用[...] = princomp(X,'econ')来计算,这样会显著提高计算速度

    Examples--举例

    (上面说了那么多废话,看了还不一定懂,还不如举例容易理解,下面样本数据集为ingredients,这个数据集是matlab自带的)

    Compute principal components for the ingredients data in the Hald data set, and the variance accounted for by each component.

    load hald; %载入matlab内部数据

    [pc,score,latent,tsquare] = princomp(ingredients); %调用pca分析函数

    ingredients,score,pc,latent,tsquare %显示得到的结果

    ingredients =

    7 26 6 60

    1 29 15 52

    11 56 8 20

    11 31 8 47

    7 52 6 33

    11 55 9 22

    3 71 17 6

    1 31 22 44

    2 54 18 22

    21 47 4 26

    1 40 23 34

    11 66 9 12

    10 68 8 12

    score =

    36.8218 -6.8709 -4.5909 0.3967

    29.6073 4.6109 -2.2476 -0.3958

    -12.9818 -4.2049 0.9022 -1.1261

    23.7147 -6.6341 1.8547 -0.3786

    -0.5532 -4.4617 -6.0874 0.1424

    -10.8125 -3.6466 0.9130 -0.1350

    -32.5882 8.9798 -1.6063 0.0818

    22.6064 10.7259 3.2365 0.3243

    -9.2626 8.9854 -0.0169 -0.5437

    -3.2840 -14.1573 7.0465 0.3405

    9.2200 12.3861 3.4283 0.4352

    -25.5849 -2.7817 -0.3867 0.4468

    -26.9032 -2.9310 -2.4455 0.4116

    pc =

    -0.0678 -0.6460 0.5673 0.5062

    -0.6785 -0.0200 -0.5440 0.4933

    0.0290 0.7553 0.4036 0.5156

    0.7309 -0.1085 -0.4684 0.4844

    latent =

    517.7969

    67.4964

    12.4054

    0.2372

    tsquare =

    5.6803

    3.0758

    6.0002

    2.6198

    3.3681

    0.5668

    3.4818

    3.9794

    2.6086

    7.4818

    4.1830

    2.2327

    2.7216

    %下面我们来做一个验证

    %下面为计算ingredients协方差矩阵:

    cov_ingredients=cov(ingredients)

    cov_ingredients =

    34.6026 20.9231 -31.0513 -24.1667

    20.9231 242.1410 -13.8782 -253.4167

    -31.0513 -13.8782 41.0256 3.1667

    -24.1667 -253.4167 3.1667 280.1667

    %下面为计算ingredients所对应的协方差矩阵(也就是cov_ingredients矩阵)的特征值和特征

    %向量,下面的矩阵V为特征向量,D为特征值(对比上面的latent)组成的对角线矩阵

    [V,D] = eig(cov_ingredients)

    V =

    0.5062 0.5673 0.6460 -0.0678

    0.4933 -0.5440 0.0200 -0.6785

    0.5156 0.4036 -0.7553 0.0290

    0.4844 -0.4684 0.1085 0.7309

    D =

    0.2372 0 0 0

    0 12.4054 0 0

    0 0 67.4964 0

    0 0 0 517.7969

    %

    说明1

    :对比一下矩阵V和矩阵pc,现在很容易明白为什么COEFF是按列递减顺序排列的

    % 了!(V中第三列与pc中倒数第三列差个负号,学过线性代数的人都知道这没问题)

    %下面再验证一下说明2

    diag(cov(score))

    ans =

    517.7969

    67.4964

    12.4054

    0.2372

    %

    说明2

    :以上结果显示latent确实表示SCORE矩阵每列的方差,517.7969表示第一列方差

    下面做图表示结果:

    上面说了半天还没有达到我们终极想要的,其实我们要的是由函数[pc,score,latent,tsquare] = princomp(ingredients)它所产生的pc和latent。由latent可以算出降维后的空间所能表示原空间的程度,只要这个累积的值大于95%就行了。

    展开全文
  • 整理了各位博主的伪代码,并写成matlab程序,然后自己利用matlab自带的pca函数进行计算,两种方法进行比较,程序只需要导入自己数据就能运行。
  • 基于matlab实现PCA降维算法,可用于多维数据的损失最小化压缩,内附全代码
  • 降维算法PCAmatlab平台下的使用demo,采用自带函数,注释详细。
  • 1.PCA函数的输入与输出参数 2.PCA函数的使用方法 1.PCA函数的输入与输出参数 function [coeff, score, latent, tsquared, explained, mu] = pca(x,varargin) 输入参数: X,数据集,假设样本的个数为N,每个...
  • matlab 自带pca函数

    万次阅读 多人点赞 2018-10-25 19:39:27
     因为pca在各个学科都有使用,每个学科对于名词的叫法都不太一样,使用的目的都不太一样,我就是单纯的想使用降维,发现matlab函数的pca函数的输入参数除了数据集X还有10个....弄了一段时间才明白....这里分享一下.有...
  • Matlab PCA 算法

    2021-04-24 13:06:43
    Matlab 自带PCA函数形式为[mappedX, mapping] = pca(X, no_dims)自己编写PCA函数的步骤%第一步:输入样本矩阵%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%data=rand(10,8)+randn(10,8)+ones(10,8);%现对其进行pca降维%%...
  • 1. pca函数使用方法 [coeff, score] = pca(data); (1)输入参数 data:待降维的数据集 (2)输出参数 coeff:主成分分量,即样本协方差矩阵的特征向量; score:主成分,即样本在低维空间的投影,也就是...
  • coeff = pca(X)返回n×p数据矩阵的主成分系数。X的行对应于观察值,就是样本,列对应于变量,也...一般用下面这个函数来进行获取投影矩阵Pro_Matrix。 获得投影矩阵后,通过下面这条语句得到降维后的数据。 Y=P...
  • 可由MATLAB实现的PCA算法实例,附实例原始数据。调试图像效果很好
  • X=[1 2 3; 2 1 3; 3 3 6]; XZ=zscore(X);%数据标准化 [COEFF,SCORE,latent]=pca(XZ); 使用pca进行主成分分析 这里这个pca使用过后得到的数据是三行二列的,正常来说,我翻了所有参考,都是三行三列才对啊?求解释
  • 下面通过一个例子来说明: %...如果样本已经分好类型,那PCA后势必对结果的准确性有一定影响,我认为对于此类数据的PCA,就是在降维与准确性间找一个平衡点的问题,让数据即不会维数多而使运算复杂,又有较高的分辨率。
  • MATLAB下人脸图像的PCA重构,用matlab实现,代码完整高效。
  • 整理了各位博主的伪代码,利用matlab自带的pca函数进行计算,两种方法进行比较,程序只需要导入自己数据就能运行。
  • 1.PCA函数的输入与输出参数 2.PCA函数的使用方法 参考文献: 1.PCA函数的输入与输出参数 function [coeff, score, latent, tsquared, explained, mu] = pca(x,varargin) 输入参数: X,数据集,假设样本的...
  • matlab实现PCA

    千次阅读 2019-04-23 18:54:45
    principal component analysis(PCA) 主成分分析法是一种数学变换的方法, 它把给定的一组相关变量通过线性变换转成另一组不相关的变量,这些新的变量按照方差依次递减的顺序排列。在数学变换中保持变量的总方差不变...
  • (如果对你有帮助记得点赞分享)数据集和详细介绍见博客:https://blog.csdn.net/weixin_43863744/article/details/106062212
  • 使用Matlab编程实现PCA和白化变换

    千次阅读 多人点赞 2020-10-13 12:20:58
    使用Matlab完成以下实验,编程实现PCA和白化变换,可以使用eig或svd函数,但不能使用可以直接完成本任务的函数(例如princomp)。 (1)使用x=randn(2000,2)*[2 1;1 2]生成2000个样本,每个样本都是二维的,使用...
  • PCA的原理及MATLAB实现

    2021-04-18 06:05:56
    关于PCA原理可以直接参考下面的文章深入理解PCAPCA是经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的。PCA的原理就是将原来的样本数据投影到一个新的空间中,相当于我们在...
  • matlab pca降维

    2020-11-26 21:12:32
    函数 pcafeatures.m function [featuresTrainpca,featuresTestpca]=pcafeatures(featuresTrain,featuresTest,yuzhi) % load featuresTrain; % load featuresTest; numTrain=size(featuresTrain,1);%参数1代表取行数...
  • pca matlab函数代码

    2015-05-08 22:41:23
    pca 可用的代码 关于超声波特征提取 function y pca mixedsig %程序说明:y pca mixedsig 程序中mixedsig为 n T 阶混合数据矩阵 n为信号个数 T为采样点数 % y为 m T 阶主分量矩阵 % n是维数 T是样本数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,481
精华内容 2,192
关键字:

matlabpca函数

matlab 订阅