主成分分析(PCA)详细讲解

版权声明:转载请注明出处! PS:欢迎大家提出疑问或指正文章的错误! https://blog.csdn.net/zhuqiang9607/article/details/84069587

介绍

主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维算法,可以将高维度的数据降到低维度,并且保留原始数据中最重要的一些特征,同时去除噪声和部分关联特征,从而提高数据的处理效率,降低时间成本。

数据降维优点

  • 低维数据更容易使用
  • 数据之间相互独立
  • 减少了变量的个数
  • 提高了算法的效率
  • 去除了噪声
  • 结果的解释性更强

在PCA中,数据从原来的坐标系转换到新的坐标系,在新的坐标系中要求数据之间的协方差为0(即不同维度之间的数据线性不相关),而方差尽可能的大。因此,第一坐标轴是原始数据中方差最大的方向,第二个坐标轴是与第一个新坐标轴正交且方差次大的方向,重复该过程,直到需要的降维数。在详细讲解PCA之前,有必要先介绍协方差。

协方差

统计学里最基本的概念有均值、方差、标准差,假设有n个样本: X 1 , X 2 , . . . , X n X_{1},X_{2},...,X_{n} ,那么

均值: X = i = 1 N X i N \overline{X}=\frac{\sum_{i=1}^{N}X_{i}}{N}

方差: S 2 = i = 1 N ( X i X ) 2 N 1 S^{2}=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})^2}{N-1}

标准差: S = i = 1 N ( X i X ) 2 N 1 S=\sqrt{\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})^2}{N-1}}

其中,方差和标准差是描述一维数据的离散程度,但现实中的数据往往是多维的,比如说学生的成绩,不一定只和学习时间有关,还涉及到学习效率,学习状态等等,这时便引入了协方差。协方差定义:

C o v ( X , Y ) = i = 1 N ( X i X ) ( Y i Y ) N 1 Cov(X,Y)=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})(Y_{i}-\overline{Y})}{N-1}

  • C o v ( X , Y ) > 0 Cov(X,Y)>0 ,X和Y是正相关关系
  • C o v ( X , Y ) < 0 Cov(X,Y)<0 ,X和Y是负相关关系
  • C o v ( X , Y ) > 0 Cov(X,Y)>0 ,X和Y是线性不相关,但是不一定相互独立哦( s i n x sinx c o s x cosx 线性不相关,但是它们的平方是有关系的, s i n 2 x + c o s 2 x = 1 sin^{2}x+cos^{2}x=1)

不过有的协方差用的是:

C o v ( X , Y ) = i = 1 N ( X i X ) ( Y i Y ) N Cov(X,Y)=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})(Y_{i}-\overline{Y})}{N} (除以 N N 结果会偏小,得除以 N 1 N-1 才能得到无偏估计,可以参考“为什么样本方差(sample variance)的分母是 n-1?”)

数据如果有三维,协方差矩阵为:

C = [ c o v ( x , x ) c o v ( x , y ) c o v ( x , z ) c o v ( y , x ) c o v ( y , y ) c o v ( y , z ) c o v ( z , x ) c o v ( z , y ) c o v ( z , z ) ] C=\begin{bmatrix} cov(x,x)& cov(x,y) & cov(x,z)\\ cov(y,x) &cov(y,y) & cov(y,z)\\ cov(z,x)& cov(z,y)&cov(z,z) \end{bmatrix}

PCA步骤

假设有m个样本数据,每个数据是n维的,按列组成矩阵 X n m X_{nm} ,则PCA步骤如下:

  1. 均值化矩阵 X n m X_{nm} ,得到 X = X n m X n m X=X_{nm}-\overline{X}_{nm}
  2. 求出协方差矩阵 C = 1 n 1 X X T C=\frac{1}{n-1}XX^T
  3. 求出协方差矩阵 C C 的特征值 λ i \lambda_{i} 和特征向量 w i w_{i}
  4. 选取 k k 个最大的特征值对应的特征向量 w 1 , w 2 , . . . , w k w_{1},w_{2},...,w_{k} ,组成矩阵 W k n W_{kn} (特征值选择方法: i = 1 k λ i i = 1 n λ i t \frac{\sum_{i=1}^{k}\lambda_{i}}{\sum_{i=1}^{n}\lambda_{i}}\ge t t t 越大保留的特征值越多,按实际要求)
  5. 降维矩阵 Y k m = W k n X n m Y_{km} = W_{kn}X_{nm}

PCA实例

假设:
X 2 5 = [ 2 2 3 5 3 1 1 1 2 2 ] X_{2*5}=\begin{bmatrix} 2& 2 & 3& 5& 3\\ -1&1 & 1& 2& 2 \end{bmatrix}

  1. 均值化: X = X 2 5 X 2 5 = [ 1 1 0 2 0 2 0 0 1 1 ] X=X_{2*5}-\overline{X}_{2*5}=\begin{bmatrix} -1& -1 & 0& 2& 0\\ -2&0& 0& 1& 1 \end{bmatrix}
  2. 协方差矩阵: C = 1 5 1 X X T = [ 3 2 1 1 3 2 ] C=\frac{1}{5-1}XX^T=\begin{bmatrix} \frac{3}{2}& 1 \\ 1& \frac{3}{2} \end{bmatrix}
  3. 特征值为: λ 1 = 5 2 , λ 2 = 1 2 \lambda_{1}=\frac{5}{2},\lambda_{2}=\frac{1}{2} ,对应的特征向量 w 1 = [ 1 1 ] , w 2 = [ 1 1 ] w_{1}=\begin{bmatrix} 1 \\ 1\end{bmatrix},w_{2}=\begin{bmatrix} 1 \\ -1\end{bmatrix} ,特征向量单位化 w 1 = [ 1 2 1 2 ] , w 2 = [ 1 2 1 2 ] w_{1}'=\begin{bmatrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{bmatrix},w_{2}'=\begin{bmatrix} \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} \end{bmatrix}
  4. 按照特征值大小排序,选择最大的部分特征,这里选取 λ 1 \lambda_{1} ,此时矩阵 W 1 2 = [ 1 2 1 2 ] W_{1*2}=\begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \end{bmatrix}
  5. 降维矩阵 Y 1 5 = W 1 2 X 2 5 = [ 1 2 1 2 ] [ 1 1 0 2 0 2 0 0 1 1 ] = [ 3 2 1 2 0 3 2 1 2 ] Y_{1*5}= W_{1*2}X_{2*5}=\begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \end{bmatrix}\begin{bmatrix} -1& -1 & 0& 2& 0\\ -2&0& 0& 1& 1 \end{bmatrix}=\begin{bmatrix} -\frac{3}{\sqrt{2}} &-\frac{1}{\sqrt{2}} &0&\frac{3}{\sqrt{2}} &\frac{1}{\sqrt{2}}\end{bmatrix}

猜你喜欢

转载自blog.csdn.net/zhuqiang9607/article/details/84069587