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

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

本文记录了使用MATLAB进行PCA降维的过程,通过计算降维后的精度,选择保留前40维,达到99.24%的保留信息。PCA不仅加速计算,也可能去除冗余干扰,提升模型拟合效果。
最低0.47元/天 解锁文章
351

被折叠的 条评论
为什么被折叠?



