使用PCA对数据集进行降维
一、实验准备
1、实验内容和目的
-
使用主成分分析(PCA)对鸢尾花数据集进行降维操作,其中要求绘制出降维后的数据分布散点图并说明降维后的维度,提取的主成分的特征值
-
其中数据集文件为iris.data.txt。数据集中的每个样本有4个特征参数,最后的标签为鸢尾花的类别
2、实验原理
-
前面学习到了KNN分类算法,然后使用KNN算法进行鸢尾花的分类。分类时,虽然将数据集中的所有特征都纳入了考虑范围,都参与了计算,但由于只有4个特征,并不会明显地加大计算的复杂程度。但如果处理别的数据集时,假如此时的样本拥有成百上千个特征,还会一样的轻松吗?
-
想象这样一种场景:我们正通过电视而非现场观看体育比赛,在电视上的纯平显示器上有一个球。显示器大概包含了100万像素,而球则可能是由较少的像素组成的,比如说一千个像素。在大部分体育比赛中,我们关注的是给定时刻球的位置。人的大脑要想了解比赛的进展,就需要了解球在运动场中的位置。对于人来说,这一切显得十分自然,甚至都不需要做任何思考。在这个场景当中,人们实时地将显示器上的百万像素转换成为了一个三维图像,该图像就给出了运动场上球的位置。在这个过程中,人们已经将数据从一百万维降至了三维
-
在上述体育比赛的例子中,人们面对的原本是百万像素的数据,但是只有球的三维位置才最重要,这就称作降维。在低维下,数据更容易进行处理。另外,其相关特征可能在数据中明确地显示出来
-
降维就是对高维度特征的一种预处理方法,它将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用当中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为了应用非常广泛的数据预处理方法
-
主成分分析(PCA)就是一种降维技术,它通过正交变换把可能线性相关的变量转换为几乎线性无关的变量,这些变量就是所谓的“主成分”
2.1 PCA的工作原理
-
在PCA中,数据从原来的坐标系转换到新的坐标系,由数据本身决定。转换坐标系时,以方差最大的方向作为坐标轴方向,因为数据的最大方差给出了数据的最重要信息。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选择的是与第一个新坐标轴正交且方差次大的方向。重复该过程,重复次数为原始数据的特征维数
-
通过这种方式获得的新的坐标系,大部分方差都包含在前面几个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面的几个含有绝大部份方差坐标轴。事实上,这样也就相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,也就实现了对数据特征的降维处理
2.2 计算协方差矩阵
-
PCA的原理已经知道了,那么我们如何得到这些包含最大差异性的主成分方向呢?事实上,通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值及特征向量,选择特征值最大(也即包含方差最大)的N个特征所对应的特征向量组成的矩阵,我们就可以将数据矩阵转换到新的空间当中,实现数据特征的降维
-
这里说一下方差和协方差之间的关系,首先看一下均值、方差和协方差的计算公式:
X‾=1N∑i=1NXi\overline{X}=\frac{1}{N}\sum_{i=1}^NX_iX=N1i=1∑NXi
S=1N−1∑i=1N(Xi−X‾)2S=\frac{1}{N-1}\sum_{i=1}^N(X_i-\overline{X})^2S=N−