你好,我是黄申。

在概率统计模块,我详细讲解了如何使用各种统计指标来进行特征的选择,降低用于监督式学习的特征之维度。接下来的几节,我会阐述两种针对数值型特征,更为通用的降维方法,它们是主成分分析 PCA(Principal Component Analysis)和奇异值分解 SVD(Singular Value Decomposition)。这两种方法是从矩阵分析的角度出发,找出数据分布之间的关系,从而达到降低维度的目的,因此并不需要监督式学习中样本标签和特征之间的关系。

PCA 分析法的主要步骤

我们先从主成分分析 PCA 开始看。

在解释这个方法之前,我先带你快速回顾一下什么是特征的降维。在机器学习领域中,我们要进行大量的特征工程,把物品的特征转换成计算机所能处理的各种数据。通常,我们增加物品的特征,就有可能提升机器学习的效果。可是,随着特征数量不断的增加,特征向量的维度也会不断上升。这不仅会加大机器学习的难度,还会影响最终的准确度。针对这种情形,我们需要过滤掉一些不重要的特征,或者是把某些相关的特征合并起来,最终达到在减少特征维度的同时,尽量保留原始数据所包含的信息。

了解了这些,我们再来看今天要讲解的 PCA 方法。它的主要步骤其实并不复杂,我一说你就能明白,但是为什么要这么做,你可能并不理解。咱们学习一个概念或者方法,不仅要知道它是什么,还要明白是怎么来的,这样你就能知其然,知其所以然,明白背后的逻辑,达到灵活运用。因此,我先从它的运算步骤入手,给你讲清楚每一步,然后再解释方法背后的核心思想。

和线性回归的案例一样,我们使用一个矩阵来表示数据集。我们假设数据集中有 m 个样本、n 维特征,而这些特征都是数值型的,那么这个集合可以按照如下的方式来展示。

那么这个样本集的矩阵形式就是这样的:

这个矩阵是 m×n 维的,其中每一行表示一个样本,而每一列表示一维特征。让我们把这个矩阵称作样本矩阵,现在,我们的问题是,能不能通过某种方法,找到一种变换,可以降低这个矩阵的列数,也就是特征的维数,并且尽可能的保留原始数据中有用的信息?

针对这个问题,PCA 分析法提出了一种可行的解决方案。它包括了下面这样几个主要的步骤:

  1. 标准化样本矩阵中的原始数据;
  2. 获取标准化数据的协方差矩阵;
  3. 计算协方差矩阵的特征值和特征向量;
  4. 依照特征值的大小,挑选主要的特征向量;
  5. 生成新的特征。

下面,我们一步步来看。

1. 标准化原始数据

之前我们已经介绍过特征标准化,这里我们需要进行同样的处理,才能让每维特征的重要性具有可比性。为了便于你回顾,我把标准化的公式列在了这里。

x′=x−μσx′=x−μσ