主分量分析(PCA)是一种统计技术,它允许在数据集中识别潜在的线性模式,这样就可以用其他数据集来表示,而不丢失大量信息。最后的数据集应该能够通过减少变量来解释原始数据集的大部分方差。最后的变量将被命名为主分量。下图是主分量分析的每个步骤的活动图。
为了说明上图中描述的过程,我们将使用以下具有两个维度的数据集。
下图显示了变量x 1与变量x 2的值。
我们的目的是计算主分量,以便将其转换为只有一维的数据集,同时信息损失最小。
1.从数据中减去平均值
PCA的第一步是减去数据集中每个变量的平均值,如下图所示。
从上图中可以看到,这一均值的减法导致了现在零均值的数据的平移。
2.建立协方差矩阵
两个随机变量的协方差度量了他们各自之间的变化程度。协方差的标志提供了以下关于它们之间关系的信息:
·如果协方差为正,则两个变量一起增减。·如果协方差为负,那么当一个变量增加,另一个减少,反之亦然。
这些值将决定用于减少数据集维度的变量之间的线性依赖关系。回到我们的例子,以下是协方差矩阵。
对角线上的值表示每个变量的协方差,它们等于方差。方差是一个度量如何从平均值传播数据的概念。非对角值表示两个变量之间的协方差。在这种情况下,这些值是正的,这意味着两个变量一起增加和减少。
3.确定特征向量和特征值
特征向量指的是在它们应用任何线性变换后方向保持不变的向量。然而,向量的长度在转换之后不可能保持不变,即,该变换的结果是向量乘以标量。该标量被称为特征值,每个特征向量都有与之关联的一个特征向量。
我们可以为每个数据集计算特征向量,或者组件的数量等于数据集的维数。在这种情况下,我们有一个二维数据集,所以特征向量的数量是2。下图是我们举例的特征向量。
由于是根据前述协方差矩阵计算的,所以特征向量表示数据具有更多方差的方向。另一方面,它们各自的特征值决定数据集在该方向上具有的方差量。
一旦我们获取了这些新方向,我们可以按照下图来绘制数据。
请注意,数据没有改变,我们只是根据这些新方向重写它们,而不是以前的x 1 -x 2方向。
4.主分量
在上一步中计算出的所有可用特征向量中,我们选择需要数据投影的部分。所选择的特征向量就是主分量。为了建立一个准则来选择特征向量,我们首先必须定义每个特征向量的相对方差和一个数据集的总方差,一个特征向量的相对方差度量了多少信息可以归为它。数据集的总方差是所有变量的方差之和。
这两个概念由特征值决定。对于我们的例子,下表显示了每个特征向量的相对方差和总方差。
正如我们所看到的,第一个特征向量可以解释几乎所有数据方差的85%,而第二个特征向量解释了其中的15%。下图显示了组件的累积方差。
选择变量的常用方法是确定我们希望最终数据集解释的信息量。如果信息的数量减少,我们将选择的主分量的数量也会减少。在本例中,当我们想要将二维数据集减少到一维数据集时,我们将只选择第一个特征向量作为主分量。因此,最终减少后的数据集将解释约85%的原始数据。
5.减少数据维度
一旦我们选择了主分量,就必须将数据投影到它们上。下图是示例中的投影结果。
虽然这个投影可以解释原始数据的大部分方差,但是我们已经失去了第二个特征向量的相对方差和总方差的信息。一般来说,这个过程是不可逆的,这意味着我们无法从投影中恢复原始数据。
结论
主分量分析是一种可以帮助我们识别数据集基础依赖关系的技术,并且显著降低数据集的维度。
这种技术对于处理具有数百个变量的数据集非常有用,同时可以还原原始数据集中的大部分信息。
主分量分析也可以在神经网络中实现。然而,由于这个过程是不可逆的,因此数据的减少可能只针对输入而不是目标变量。
来源:neuraldesigner作者:Pablo Martin智能观 编译