主成分分析(principal component analysis,PCA)是机器学习里常用的无监督学习方法。这个方法利用正交变换,将由线性相关变量表示的观测数据转换为由少数几个线性无关变量表示的数据,线性无关的变量称为主成分。主成分的个数通常少于原始变量的个数,所以主成分分析属于降维方法。

主成分分析这一方法主要用来分析数据的基本结构,即数据中变量之间的关系,是数据分析的有力工具,也可以用于其他机器学习方法的预处理,它是多元统计分析中的经典方法。

为什么要求变量之间线性无关?

如果数据之中的某些维度之间存在较强的线性相关关系,那么样本在这些维度上提供的信息有就会一定地重复,所以希望数据各个维度之间是不相关的 (也就是正交的)。

直观解释

机器学习残差计算(机器学习降维方法)(1)

如图,考虑二维情形,假如x_1和x_2是两个数据变量,图中每个点表示一个样本点,可以看出,这些数据分布在一个以原点为中心的椭圆中,很明显这两个变量是线性相关的,因为固定了一个变量后,另外一个变量的取值不是随机的。

主成分分析对数据做正交变换,具体地,对原坐标系进行旋转变换,将数据在新的坐标系中表示。新的变量是y_1和y_2。可以看出,新的坐标系中,椭圆的长短轴分别对应两个新的坐标轴。为什么这样做呢?因为主成分分析选择方差最大的方向作为第一主成分,也就是长轴对应的方向;其次选择方差第二大,且与第一主成分线性无关的方向,即正交的方向,作为第二主成分,即短轴。

在新的坐标系里,数据中的变量是线性无关的。

样本主成分分析

求解主成分分析的思路就是求得原变量的一系列线性变换,使得新变量y_1(第一主成分)的方差最大,y_2(第二主成分)的方差是和y_1不相关的原变量的所有线性变换中方差最大的,然后在和y_1、y_2线性无关的条件下,分别求y_3,y_4...。

我们下面简单介绍对样本的主成分分析算法。

  1. 对n个观测数据样本进行规范化处理,得到规范化数据矩阵,表示为X。
  2. 根据规范化数据矩阵,计算样本的相关矩阵R = 1/(n-1)*X*X^T
  3. 求样本相关矩阵R的n个特征值lambda_1,lambda_2,···lambda_n和对应的n个单位特征向量a_1,a_2,···a_n,每个特征值除以所有特征值的和就是这个主成分对应的方差贡献率。我们要选取多少个主成分呢? 假如选取前k个, 一般要求k个主成分的累计方差贡献率(即方差贡献率之和)在70%到80%,这就说明这些主成分保留原数据的信息量在70%到80%。因此,计算累计方差贡献率,再决定k的大小。
  4. 求解k个样本主成分。y_i = a_i^T*x;
数据分析

得到k个主成分后,就可以对主成分进行分析,可以通过计算主成分和原变量的相关系数(称为因子负荷量),来分析哪个原变量和主成分的相关性最高。比如在考试成绩的数据中,每个科目都是原变量,求得第一主成分后,假如物理和第一主成分的因子负荷量最高,说明物理对第一主成分影响最大。怎么分析要结合具体的计算结果和具体的例子。

扩展

可以通过核方法隐式地在高维空间中进行主成分分析,相关的方法是核主成分分析。

参考资料:《统计学习方法(第二版)》,李航,清华大学出版社;

欢迎大家在评论区讨论,如有错误,欢迎指正,多谢。

喜欢的可以关注一波小编哇,一起讨论,一起学习进步!您的支持,是小编创作的动力!

,