AI制胜:机器学习极简入门
上QQ阅读APP看书,第一时间看更新

2.3 数据降维

2.3.1 什么叫数据降维

对一副宽为p、高为q的二维灰度图,要完整表示该图像,需要m=p*q维的向量空间,比如100×100的灰度图像,它的向量空间为100×100=10000。如图2-5所示,是一个3×3的灰度图和表示它的向量表示。

图2-5

该向量为行向量,共9维,用变量表示就是[v0, v1, v2, v3, v4, v5, v6, v7, v8],其中v0...v8,的范围都是0~255。现在的问题是,假如我们用1×10000向量表示100×100的灰度图,是否向量中的10000维对我们同样重要?肯定不是这样的,有些维的值可能对图像更有用,有些维相对来说作用小些。为了节省存储空间,我们需要对10000维的数据进行降维操作,降维后会尽量保留更有意义的维数,对于高维的数据集来说,一部分维数表示大部分有意义的数据。

降维就是一种对高维度特征数据预处理的方法。它将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。

2.3.2 PCA主成分分析原理

降维的算法有很多,PCA(Principal Component Analysis)即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。

首先看一个表格,表中是某些学生的语文、数学、物理和化学的成绩统计,如图2-6所示。

图2-6

先假设这些科目成绩不相关,也就是说某一科目考多少分与其他科目没有关系,那么如何判断三个学生的优秀程度呢?我们一眼就能看出来,数学、物理、化学这三门课的成绩构成了这组数据的主成分(很显然,数学作为第一主成分,因为数据成绩拉得最开)。

那么为什么我们能一眼看出来呢?当然是我们的坐标轴选对了!

下面继续看一个表格,如图2-7所示,图中是一组学生的数学、物理、化学、语文、历史和英语的成绩统计。

图2-7

那么这个表我们能一眼看出来吗?数据太多了,以至于看起来有些凌乱,无法直接看出这组数据的主成分,因为在坐标系下这组数据分布得很散乱。究其原因,是因为无法拨开遮住肉眼的迷雾,如果把这些数据在相应的空间中表示出来,也许我们就能换一个观察角度找出主成分。

PCA主成分分析是一种用于探索高维数据的技术。PCA可以把可能具有线性相关性的高维变量合成为线性无关的低维变量,称为主成分(Principal Component),新的低维数据集会尽可能地保留原始数据的变量,可以在将高维数据集映射到低维空间的同时,尽可能地保留更多变量。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫作主成分。

我们如何得到这些包含最大差异性的主成分方向呢?事实上,通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。

由于得到协方差矩阵的特征值特征向量有两种方法,特征值分解协方差矩阵和奇异值分解协方差矩阵,所以PCA算法有两种实现方法:基于特征值分解协方差矩阵实现PCA算法和基于SVD分解协方差矩阵实现PCA算法。

2.3.3 PCA主成分分析实战案例

还是以红酒数据集为例子,演示PCA主成分分析的使用。

范例程序代码如下:

上面的范例程序的运行结果如图2-8所示。数据集样本数量178,特征数量13个,三个类别。PCA降维后,样本数量还是178个,特征数量只剩下2个了。PCA主成分分析方法将数据集的特征向量降至二维,从而可以很方便地进行可视化处理,而又不会丢失太多的信息。

图2-8

如图2-9所示,经过降维的酒数据集,可以看出,降维后的数据仍能够清晰地分成三类。这样不仅能削减数据的维度,降低分类任务的工作量,还能保证分类的质量。

图2-9

而主成分与各个特征值之间的关系,如图2-10所示。颜色由深到浅代表从-0.5到0.4的数值,如果某个特征对应的数字是正数,说明它与主成分之间是正相关的关系;如果是负数,说明它与主成分之间是负相关的关系。

图2-10