通常对于高维数据需要进行降维,matlab中有pca进行数据分析,进行主成份分析:principal component analysis。
matlab调用PCA的方式如下:
XMean = mean(X);%X每行是一个实例,每列代表一个属性
X = bsxfun(@minus,X,XMean);%去中心
[eigenVectors,scores,eigenValues] = pca(X);
transMatrix = eigenVectors(:,1:K);
X = X*transMatrix;
第一步是对求训练集数据的均值;X代表原始的数据矩阵,是一个N*d的矩阵,N代表样本个数,d代表特征的原始维数;
第二步是对训练集去中心化;
第三步是pca分析:eigenVectors是一个d*d的矩阵,每列代表对应特征值的特征向量,scores是N*d的矩阵,eigenValues是对应的特征值向量,与eigenVectors的列相对应。
第四步取特征向量矩阵的前K列作为变换矩阵
第五步是对数据进行变化,降维。
**如果数据既有训练集又有测试集,一般先对训练集进行PCA降维,得到相应的transMatrix;
然后在测试集上减去训练样本的均值trainMean,然后乘以变换矩阵得到对应的降维后的测试集&#