机器学习之主成分分析(PCA)

PCA(principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分。是在原有的n维特征的基础上重新构造出来的k维特正,而不是大家误认为的从n维特征中选取k个。
PCA有最大方差理论和最小平方误差理论两种解释方式,本文是从最大方差理论角度出发。在信号领域认为信号具有较大的方差比,越大越好。因此我们认为,最好的k维特征是将n维样本点变换k维后,每一维上的样本方差都尽可能大。
PCA的工作就是从原始的空间中顺序的找一组相互正交的坐标轴,新坐标轴的选择与数据本身密切相关。其中第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交平面中使得方差最大的。第三个坐标轴是与第一、第二坐标轴正交平面中方差最大的。依次类推,可以得到n个这样的坐标轴。我们发现,大部分方差都包含在前面k个含有绝大部分方差的坐标轴中,后面的坐标轴所含方差基本为0.于是我们可以忽略余下的坐标轴,只保留前k个含有绝大部分方差的坐标轴。事实上,这相当于只保留绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据的降维处理。下面我们从数学的角度来证明如何获得这些新的坐标轴方向。
首先考虑一维空间上的投影。我们可以使用n维向量μ定义这个空间方向。为了方便不失一般性,我们假定选择了一个单位向量,从而
在这里插入图片描述
我们只对其方向感兴趣,不关注其大小。
机器学习之主成分分析(PCA)_第1张图片
如上图所示,红色点表示原样本点,μ是蓝色直线的斜率也是直线的方向向量,而且是单位向量,直线上的蓝色点表示原样本点在μ上的投影。假定这些原始样本点的每一维特征均值都为0,因此投影到μ上后样本点的均值仍然是0.
假设原始数据集为X,我们的目标是找到最佳的投影空间W=(w1,w2,…wk),其中wi是单位向量且wi与wj(i≠j)正交,何为最佳的W?就是原始样本点投影到W上之后,使得投影后的样本点方差最大。
由于投影后的均值为0,因此投影后的总方差为:
机器学习之主成分分析(PCA)_第2张图片
所以W是矩阵∑的特征值所对应的特征向量。欲使投影后的总方差最大,即λ最大,因此最佳的投影向量W是特征值λ最大时对应的特征向量。因此,当我们将W设置为与具有最大的特征值λ的特征向量相等时,方差会达到最大。其次是λ第二大对应的特征向量,依次类推。如果我们考虑k维投影空间的一般情形,那么最大投影方差的最优线性投影有数据的协方差矩阵∑的k个特征向量w1,w2…,wk定义,对应于前k个最大特征值。
因此,我们只需要对协方差矩阵进行特征值分解,得到的前k大特征值对应的特征向量就是最佳的k维新特征,而且这k维新特征是正交的。得到前k个μ以后,原始数据集X通过变换可以得到新的样本。
PCA算法流程如下:
1)按列计算数据集X的均值Xmean,然后令Xnew=X−Xmean
2)求矩阵Xnew的协方差矩阵,并将其记为Cov
3)计算协方差矩阵Cov的特征值及相应的特征向量
4)将特征值按照从大到小排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵Wnk
5)计算Xnew Wnk,即将数据集Xnew投影到选取的特征向量上,这样我们就得到了我们需要的已经降维的数据集。
举例如下:
我们有2位的数据集如下:
机器学习之主成分分析(PCA)_第3张图片
这里x的均值是1.81,y的均值是1.91,那么一个样例减去均值后即为(0.69,0.49),得到
机器学习之主成分分析(PCA)_第4张图片
求特征协方差矩阵,如果数据是3维,那么协方差矩阵是
在这里插入图片描述
这里2维协方差矩阵是
在这里插入图片描述
求协方差矩阵的特征值和特征向量
机器学习之主成分分析(PCA)_第5张图片
上面是两个特征值,下面是对应的特征向量,特征值0.0490833989对应特征向量为(-0.735178656,0.677873399)T,这里的特征向量都归一化为单位向量。
将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。这里特征值只有两个,我们选择其中最大的那个,这里是1.28402771,对应的特征向量是(-0.677873399,-0.735178656)T。
将样本点投影到选取的特征向量上。FinalData(101) = DataAdjust(102矩阵)×特征向量
得到的结果是
机器学习之主成分分析(PCA)_第6张图片
这样,就将原始样例的n维特征变成了k维,这k维就是原始特征在k维上的投影。

你可能感兴趣的:(机器学习,降维,PCA)