本文包括:主成分分析基本思想
主成分分析的数学表达
主成分个数
规范化变量的总体主成分
样本主成分分析
1.主成分分析基本思想:
在一个数据集中,数据的变量(特征)之间可能存在相关性(互相不独立),这种相关性增加了分析的难度。在很多模型中,是会假设各个特征之间是独立的,最有代表性的就是朴素贝叶斯模型。
为了减少分析难度,提出了主成分分析的方法。主成分分析的最终结果是要用少数不相关的变量来代替相关的变量,这些少数不相关变量可以用来表示数据,并且能够保留数据中的大部分信息。
主成分分析中,首先需要对给定数据进行规范化。所谓规范化,就是使得每个特征的平均值为0,方差为1,最常用的就是z-score规范化,因为本篇主要讲主成分分析,关于规范化可以自行查找资料。
规范化后,对数据进行正交变换,正交变换是线性代数中的概念,经过正交变换后,原来线性相关的变量,将被转换成数个线性无关的新变量。新变量选择的,是经过正交变换后的变量中方差最大的几个变量,方差最大即意味着原信息保存的最为完整。
将新变量根据方差的大小,依次称为第一主成分、第二主成分等。
当然,主成分分析后得到的新变量不太可能保存原始数据的全部信息,因此这是一种对原始数据的近似表示,我们可以认为新变量是原始数据的“基本结构“。有时主成分分析后,我们可以用比原始特征数量更少的特征来表示原始数据,这种方法叫做对数据的降维。
现在用《统计学习方法》中的一个例子来讲解如何通过正交变换完成主成分分析。
首先我们知道,数据集的n个特征所形成的特征空间可以看做是n维空间,现在我们假设数据集中仅有两个特征,形成的空间就是由x1和x2两个正交的坐标表示(下图左侧),其中的点就是数据集中的各个实例,每个实例在坐标系中所对应的坐标就是两个特征的取值。
接着我们对坐标进行正交变换,反应到坐标系中,就是对坐标进行旋转(上图右侧),旋转后得到的坐标用y1和y2表示。
那么我们时候停止坐标的旋转呢?第一主成分需要对应方差最大的方向,在上图就是椭圆的长轴,即y1,第二主成分需要与y1正交,且方差第二大的方向,在图中就是y2。
这样,就得到了经过正交变换后的新特征,完成了主成分分析。得到的新变量是线性无关的,比如知道了y1的值,对y2的取值是没有影响的,反之亦然。
如果对于上面的例子,我们只想要一个特征,那么我们应该将新特征中最小方差的特征(y2)投影到较大方差特征的轴上(y1),这样就完成了降维。
最后,对方差最大做出解释,首先看下图:
在对原始坐标进行旋转后得到一个新的坐标轴y1,数据点A,B和C在y1上的投影为A',B'和C',原点到投影点的距离平方和可以代表在该方向上方差的大小,因此我们需要选择一个方向,让OA'^2+OB'^2+OC'^2最大。
根据勾股定理,我们可以得知让OA'^2+OB'^2+OC'^2最大等价于让AA'^2+BB'^2+CC'^2最小,这样,得到的第一个轴就可以作为第一主成分。
2.主成分分析的数学表达:
2.1 定义
假设我们有m维随机变量x = (x1, x2, …, xm),具体到机器学习中就是数据集有m个特征,每个特征的均值是μ1, μ2, …, μm,则均值向量为μ = E(x) = (μ1, μ2, …, μm)。
协方差矩阵为Σ:
现在,我们让m维随机变量x线性变换到m维随机变量y = (y1, y2, …, ym),其中:
其中
是系数向量:
上式说明每一个yi与所有xi都有关,对于m维随机变量x来说,每一个yi所对应的系数向量
都有m个元素,如果不进行降维,那么随机变量y也有m维,因此对于m个系数向量来说,一共有m^2个元素。
用更直观的矩阵来说,对于有三个特征的数据集,我们进行主成分分析后还是保留三个维度,则:
于是,我们可以得到随机变量y中每一个元素的均值,以及两两元素间的协方差:
如果满足以下条件:系数向量
是单位向量,α1,α2,…,αm是一组标准正交基:
(2) 变量yi与yj互不相关,即cov(yi, yj) = 0 (i ≠ j)
(3) yi是与y1, y2, …, y(i-1) (i=1, 2, …, m)都不相关的x的所有线性变换中方差最大的,比如y1是所有线性变换中方差最大的,y2是与y1不相关的x的所有线性变换中方差最大的,这时分别称y1, y2, …, ym为的第一主成分,第二主成分,…,第m主成分。
则为总体主成分分析。
其中条件2和条件3给出了一个求主成分的方法