Matlab中特征降维主成分分析(PCA)使用方法(整套流程)

您所在的位置:网站首页 pca降维方法的主要步骤 Matlab中特征降维主成分分析(PCA)使用方法(整套流程)

Matlab中特征降维主成分分析(PCA)使用方法(整套流程)

2024-01-22 05:34| 来源: 网络整理| 查看: 265

1. PCA简介:

PCA(Principal Component Analysis)主成分分析方法是一种常见的数据降维方法。数据维度过高可能会使得模型效果不佳。PCA主要原理是将高维原数据通过一个转换矩阵,映射到另一组低维坐标系下,从而实现数据降维。

2. matlab中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,score,latent,tsquared,explained,mu] = pca(___)

常用参数为coeff,score,latent

coeff:主成分系数矩阵,也叫做转换矩阵,是理论中的原数据X对应的协方差矩阵的特征向量组成的矩阵score:原数据利用初始coeff转换后的新数据矩阵,但这个不是我们想要的最终转换数据,因为后续降维操作会改变coefflatent:是理论中的原数据X对应的协方差矩阵的特征值,是一个向量,并且经过排序(贡献越大越靠前) 3. PCA完整使用方法 (1). 导入实验数据,划分出训练集train_data和测试集test_data (2). 基于训练集用pca()得到需要参数 [coeff,score,latent,tsquared,explained,mu] = pca(train_data) (3). 计算主成分累计贡献率,运行下面的代码后会出现一个向量,从小到大,例如输出为[0.7,0.95,0.98,1](数据特征有四维),0.7就代表取第一主成分贡献率70%,0.95就代表取第一主成分和第二主成分就已经得到累计贡献率95%,相当于只用两个主成分就揽括了原数据95%的信息。若只取前两个主成分,其他的丢弃,则模型也能够有着不错的效果,从而将四维数据降到了二维。一般要求累计贡献率大于等于95%就够了 cumsum(latent)/sum(latent)%累积贡献值 (4). 基于累计贡献值确定所降到的维度数量(设为p)后,取coeff的前p列作为降维转换矩阵tran_matrix(coeff也是根据第几主成分贡献从大到小排列的) tran_matrix = coeff(:,1:p) (5). 把训练集每列的值减去样本对应列的均值,得到train_data0,再将train_data0与转换矩阵tran_matrix相乘,得到将原始训练集降维后的新训练数据集 train_data0 = bsxfun(@minus,train_data,mean(train_data,1)); low_train_data = train_data0 * tran_matrix; (6). 将测试集每列的值减去训练集对应列的均值,得到test_data0,再将test_data0与转换矩阵tran_matrix相乘,得到将原始测试集降维后的新测试数据集 test_data0 = bsxfun(@minus,test_data,mean(x,1)); low_test_data = test_data0 * tran_matrix;


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3