本人最近一直在关注学习基于SVD(奇异值分解)的PCA(主成分分析算法)—— Principal Component Analyse
我在学习的过程中查阅了 “一步一步教你学PCA” 等博客,发现讲的非常好,但是作者讲的例子太过于复杂,以下是我在参考完多个博主关于PCA的见解之后,自己基于sklearn中的鸢尾花数据集(iris.csv)进行编写的主成分分析实例,其中的代码对于初学者而言非常好理解,我在代码中嵌入了相当大部分的代码注解,可以帮助读者进行理解。通过大量的网络搜索,我发现采用鸢尾花数据集进行主成分分析比较简单易懂,希望能够帮助到大家,如果我的代码存在问题,还希望大家多多批评指正。
1.相关背景
在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律。多变量大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的工作量。更重要的是在很多情形下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性。如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息,因此盲目减少指标会损失很多有用的信息,从而产生错误的结论。因此需要找到一种合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量之间存在一定的相关关系,因此可以考虑将关系紧密的变量变成尽可能少的新变量,使这些新变量是两两不相关的,那么就可以用较少的综合指标分别代表存在于各个变量中的各类信息。主成分分析与因子分析就属于这类降维算法。
2. 数据降维
降维就是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除