1、PCA的思想
主成分分析(Principal Component Analysis)是一种最常用的数据降维手段。将大量变量转化成一组很少的不相关变量,这些不关变量称为主成分,并且尽可能地保留原始数据集的信息。
假如我们的数据集 D D D是 n n n维的,共有 m m m个数据 ( x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) ) (x^{(1)},x^{(2)},\cdots,x^{(m)}) (x(1),x(2),⋯,x(m)),我们希望将这 m m m个数据的维度从 n n n维降到 n ′ n' n′维,希望这 m m m个 n ′ n' n′维的数据集尽可能的代表原始数据集。我们知道数据从 n n n维降到 n ′ n' n′维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这 n ′ n' n′维的数据尽可能表示原来的数据呢?
举一个最简单的例子:
当 n = 2 , n ′ = 1 n=2,n'=1 n=2,n′=1时,我们希望找到一个一维方向可以尽可能代表原始数据集,图中列了两个向量方向, u 1 u_1 u1和 u 2 u_2 u2,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出, u 1 u_1 u1比 u 2 u_2 u2好。
为什么 u 1 u_1 u1比 u 2 u_2 u2好呢?可以有两种解释:
第一种解释是样本点到这个直线的距离足够近
第二种解释是样本点在这个直线上的投影能尽可能的分开
因此,我们希望降维的标准为:样本点到这个超平面的距离足够近,或者说样本点在这个超平面上的投影能尽可能的分开
2、PCA算法流程
(1)各变量数据标准化
目的:标准化输入数据集,使数据成比例缩小
PCA方法对于初始变量的方差非常敏感,如果初始变量方差的差异很大,这将导致主成分的偏差,因此第一步需要将各初始变量的数据标准化,标准化公式:
x n e w = x i − μ σ x_{new}=\frac{x_i-\mu}{\sigma} xnew=σxi−μ
μ \mu μ:代表特征 x x x的均值
σ \sigma σ:代表特征 x x x的标准差
(2)计算样本的协方差矩阵
协方差定义:
C o v ( x , y ) = E ( ( x − μ x ) ( y − μ y ) ) Cov(x,y)=E((x-\mu_x)(y-\mu_y)) Co