python代码见机器学习类的pca降维
下面演示利用spss做pca降维
导入数据之后,点击分析 降维 因子分析
然后将数据都导入到变量中 在描述里将相关矩阵的系数勾选上。在抽取里点击碎石图,在得分里点击显示因子得分系数矩阵。然后点击确定。
第一个输出的是,相关矩阵,利用python也可以建立更美观的相关矩阵:
重点:解释的总方差:
这样,可以看出,第一个和第二个特征,贡献的方差占比远远大于后几个特征,所以我们可以提取出第一个和第二个特征作为我们降维之后的特征。
碎石图:
就是上图合计列的可视化展示,其中我们选择的一般都是值大于1的,从图像和数据中均可看出,选择第一个和第二个。
然后以这两个为主成分的各特征的系数,这里需要用到成分矩阵:
例如:0.353是根据0.949/sqrt(7.22)得到的
然后就得到了:
这里的F的表达式是由于,第一个和第二个成分,在前面的求解中,占比合起来为84.5 然后成分一占到了72.2 成分二占到了12.3,所以有以上这个式子。
这里的ZX1,ZX2中的z表示,对这些特征都进行了归一化处理,如何进行归一化处理在其他文章中写过了,这里说一下,在spss中如何对数据进行归一化处理:
点击分析 描述统计 描述,然后点击将标准化得分另存为变量1。
输出结果不需要管,在原始数据中会新增以Z开头的特征,这里即是对原始数据进行归一化处理。
最后,我们利用F1与F2两个主成分来计算最后的得分值F
还有一种求解F的方式,直接利用得分系数矩阵:
方法一结果:
方法二结果: