【matlab】pca函数使用方法

以下关于函数的内容可在官网查到,本文档对其进行解释与说明。

关于pca原理的说明,可见文档【数据处理方法】主成分分析(PCA)原理分析

语法:

coeff = pca(X)

coeff = pca(X,Name,Value)

[coeff,score,latent] = pca(_)

[coeff,score,latent,tsquared] = pca(_)

[coeff,score,latent,tsquared,explained,mu] = pca(_)

说明:

coeff = pca(X)

X是n*p的数据矩阵,n代表个数,p代表维度。得到的coeff是p*p的系数矩阵,也即特征向量矩阵,coeff的每个列向量代表一个主成分,并且这些主成分按照成分方差的降序排列,也就是说,越往前的主成分,成分方差越大,保留的数据信息越多,越有价值。默认情况下,pca将数据中心化,并使用奇异值分解(SVD)算法。

coeff = pca(X,Name,Value)

可以使用一个或多个Name,Value对组参数,来指定用于计算和处理特殊数据类型的附加选项。

例如,可以指定pca返回的主成分数量,或者使用SVD以外的其他算法。

[coeff,score,latent] = pca(_)

除返回系数矩阵coeff外,还可以返回score,和latent,其中score为主成分分数,即数据在各主成分上的坐标(横向),latent返回主成分方差。

[coeff,score,latent,tsquared] = pca(_)

还返回X中每个观测值的Hotelling T方统计量。

[coeff,score,latent,tsquared,explained,mu] = pca(_)

还返回explaiend(每个主成分方差占所有方差总和的百分比)和mu(X中每个变量的估计均值)。

示例:

求数据集的主成分

加载样本数据集

load hald

原料数据有4个变量的13个观测值。

找出原料数据的主成分。

coeff = pca(ingredients)
coeff = 4×4

   -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

 coeff的行包含四个变量的系数,列对应四个主成分。

主成分系数、分数和方差:

计算主成分的系数、分数和方差。

加载样本数据集。

load hald

原料数据有 4 个变量的 13 个观测值。

计算原料数据的成分的主成分系数、分数和方差。

coeff = pca(ingredients)

coeff = 4×4

   -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
score = 13×4

   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
      ⋮
latent = 4×1

  517.7969
   67.4964
   12.4054
    0.2372

score 的每列对应一个主成分。向量 latent 存储四个主成分的方差。

重新构造中心化的原料数据。

Xcentered = score*coeff'

Xcentered = 13×4

   -0.4615  -22.1538   -5.7692   30.0000
   -6.4615  -19.1538    3.2308   22.0000
    3.5385    7.8462   -3.7692  -10.0000
    3.5385  -17.1538   -3.7692   17.0000
   -0.4615    3.8462   -5.7692    3.0000
    3.5385    6.8462   -2.7692   -8.0000
   -4.4615   22.8462    5.2308  -24.0000
   -6.4615  -17.1538   10.2308   14.0000
   -5.4615    5.8462    6.2308   -8.0000
   13.5385   -1.1538   -7.7692   -4.0000
      ⋮

 Xcentered 中的新数据是将原始原料数据对应列减去列均值进行中心化后所得的结果。

以上为pca函数的主要使用方法,想了解更多细节,可以进入官网细看。

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB中的PCA函数是`pca`,可以用于计算数据的主成分分析。下面是一个简单的示例,演示如何使用`pca`函数进行主成分分析: ```matlab % 生成一个5x3的随机矩阵作为示例数据 data = rand(5,3); % 使用pca函数进行主成分分析 [coeff, score, latent] = pca(data); % coeff表示每个主成分的特征向量,score表示每个数据点在主成分上的投影,latent表示每个主成分的方差贡献率 disp('Coefficients:'); disp(coeff); disp('Scores:'); disp(score); disp('Latent:'); disp(latent); ``` 在上述示例中,首先生成了一个5x3的随机矩阵作为示例数据,然后使用`pca`函数进行主成分分析。`pca`函数的输出包括三个变量: - `coeff`:每个主成分的特征向量,它们按列排列; - `score`:每个数据点在主成分上的投影,它们按行排列; - `latent`:每个主成分的方差贡献率,按降序排列。 在上述示例中,使用`disp`函数将输出结果打印到命令窗口中。 需要注意的是,`pca`函数的输入必须是一个矩阵,每一行表示一个数据点,每一列表示一个特征。如果数据需要进行标准化,可以使用`zscore`函数进行标准化处理。例如: ```matlab % 生成一个5x3的随机矩阵作为示例数据,并进行标准化处理 data = rand(5,3); data = zscore(data); % 使用pca函数进行主成分分析 [coeff, score, latent] = pca(data); ``` 此时,`data`矩阵的每一列都具有零均值和单位方差。 需要注意的是,在实际应用中,需要根据实际问题进行数据预处理和特征选择,以提高主成分分析的效果和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值