PCA降维MATLAB使用案例

已经不是一次使用PCA了,但是这么多参数一眼看去还是不能很快的明白,如果我想对一个二维特征矩阵降维,到底应该怎么做,这里作为备忘记录一下。
PCA降维MATLAB使用案例

  • 首先使用MATLAB自带的PCA函数
    [pc,score,latent,tsquare] = pca(feature) %feature是799*216的矩阵

  • 用latent来计算降维后取多少维度能够达到自己需要的精度
    cumsum(latent)./sum(latent)
    一般取到高于95%就可以了,这里我们取前40维,精度达到了0.9924

  • pca函数已经给出了所有的转换后矩阵表示,也就是输出的score项,取出前40维就是降维后特征
    feature_after_PCA=score(:,1:40)

  • 精度分析

Ex Feature ACC SRCC
1 216维 1 0.8552
2 40维 0.9924 0.8494
3 30维 0.9844 0.8577
4* 20维 0.9642 0.8839
5 15维 0.9418 0.8811
6 10维 0.8972 0.7155

可见也不是取得维数越多效果越好,降维不仅能起到加快计算速度的作用,说不定还能去除一些冗余干扰提高拟合效果呢