主成分分析

1. 降维技术

1.1 提出问题

  • 降维( Dimensionality reduction )
  • 特征选择( feature selection )
  • 特征提取( feature extraction )

原因:
        数据冗余:实际数据的维之间往往
        维数灾难( Dimensional Curse ):索引结构的性能随着维数的增大迅速降低,在维有相关性数较高(>10)时, 不如顺序扫描

1.2 解决问题

        ➢消除数据冗余
                ●去掉可导出的维,只保留独立维
        ➢高维数据索引
                ●先进行降维.
                ●在降维后的子空间用一维或多维索引技术
        ➢可能会引起信息的丢失,从而降低查询精度

看个例子:如果一个二维数据间,x1与x2相关,反应kg与pound之间的换算关系,实际使用的时候使用一个就可以表示物体重量,所以我们将二维数据变为一维数据并不影响它的信息量。

 1.3 降维动机

        ●原始观察空间中的样本具有极大的信息冗余
        ●样本的高维数引发分类器设计的“维数灾难”
        ●数据可视化、特征提取、分类与聚类等任务需求

1.4 降维原理

        ➢把采集的数据从一个高维空间映射到维度要低得多的一个新的空间的过程。
        ➢而这个过程是与信息(有损)压缩概念密切相关的。
        ➢有以下几个原因,以减少数据的维数。
                ●高维数据带来对计算的极大挑战。
                ●在某些情况下,高维可能会导致算法的学习具有较差的泛化能力
                ●降维可以用于数据的解释性,为发现有意义的数据结构,并说明其用途。

降维一般框架:

 1.5 线性降维方法

        通过特征的线性组合来降维;本质上是把数据投影到低维线性子空间;线性方法相对比较简单且容易计算。
        代表方法:主成分分析(PCA)、线性判别分析(LDA)、多维尺度变换(MDS)

2. 主成分分析算法

2.1 主成分分析起源

        主成分分析( Principal Components Analysis)是由Hotelling于1933年首先提出的,它是利用降维的思想,把多指标转化为少数几个综合指标的多元统计分析方法。从数学角度来看,这是一种降维处理技术。优点是简单,而且无参数限制,可以方便的应用与各个场合。计算方法有非线性偏最小二乘(NIPALS) 、乘幂法( POWER)、奇异值分解(SVD)和特征值分解( EVD)等。它们的原理基本上是基于特征值问题,计算结果也基本相同。

2.2 主成分分析目的、功能与基本思想

目的:
        ●在多变量分析中,分析者所面临的最大难题是解决众多变量之间的关系问题。
        ●解决多元回归分析中的多重共线性问题。
        ●主成分分析可以把这众多指标所蕴含的信息压缩到少数几个主成分指标,然后给出这几个主成分指标的权重,综合到一个评价指标中。
主要功能:
        ●数据降维( Dimension Reduction)
        ●变量筛选(Variables Screening )
基本思想:
        主成分分析就是把原有的多个指标转化成少数几个代表性较好的综合指标,这少数几个指标能够反映原来指标大部分的信息(85%以上),并且各个指标之间保持独立,避免出现重叠信息。主成分分析主要起着降维和简化数据结构的作用。

2.3 主成分分析的数学模型

        假设我们所讨论的实际问题中,有p个指标,我们把这p个指标看作p个随机变量,记为X1,X2,..,. Xp,主成分分析就是要把这p个指标的问题,转变为讨论m个新的指标Fq,F2,...
F_{m}(m<p) ,按照保留主要信息量的原则充分反映原指标的信息,并且相互独立。

X=\begin{bmatrix} X_{11} & X_{12} & ... &X_{1p} \\ X_{21} & X_{22} & ... &X_{2p} \\ ... & ... & &... \\ X_{n1} & X_{n2} & ... &X_{np} \end{bmatrix}=\left ( X_{1} X_{2} ... X_{p} \right )         其中  X_{i}=\begin{pmatrix} X_{1i}\\ X_{2i}\\ ...\\ X_{ni} \end{pmatrix}

        这种由讨论多个指标降为少数几个综合指标的过程在数学上就叫做降维。主成分分析通常的做法是,寻求原指标的p个线性组合F_{i}

                        F_{1}=a_{11}X_{1}+a_{21}X_{2}+...+a_{p1}X_{p}

                        F_{2}=a_{12}X_{1}+a_{22}X_{2}+...+a_{p2}X_{p}
                                        ........        

                        F_{p}=a_{1p}X_{1}+a_{2p}X_{2}+...+a_{pp}X_{p}
满足如下的条件:
        ◆每个主成分的系数平方和为1。即       a_{1i}^{2}+a_{2i}^{2}+...+a_{pi}^{2}=1
        ◆主成分之间相互独立,即无重叠的信息。即Cov\left ( F_{i} F_{j} \right )=0,i\neq j,i,j=1,2,...,p
        ◆主成分的方差依次递减,重要性依次递减,即Var\left ( F_{1} \right )\geq Var\left ( F_{2} \right )\geq ...\geq Var\left ( F_{p} \right )

先讨论二维情形:X=\begin{pmatrix} X_{11} &X_{12} \\ X_{21} &X_{22} \\ ... &... \\ X_{n1} &X_{n2} \end{pmatrix}                求主成分F,和F2。

        我们可以把主成分F_{1}F_{2}的坐标原点放在平均值\left ( \overline{x_{1}},\overline{x_{2}}\right )所在处,从而使得F_{1}F_{2}成为中心化的变量,即F_{1}F_{2}的样本均值都为零。

因此F1可以表示为:F_{1}=a_{11}\left ( x_{1} -\overline{x_{1}}\right )+a_{21}\left ( x_{2} -\overline{x_{2}}\right ),

关键:寻找合适的单位向量\left ( a_{11},a_{21} \right ),使F1的方差最大。

问题的答案是: X的协方差矩阵S的最大特征根\lambda _{1}所对应的单位特征向量即为\left ( a_{11},a_{21} \right )。并且\lambda _{1}就是F1的方差。

协方差反映两个随机变量的相识程度:

         同样,F2可以表示为F_{2}=a_{12}\left ( x_{1} -\overline{x_{1}}\right )+a_{22}\left ( x_{2} -\overline{x_{2}}\right ),寻找合适的单位向量\left ( a_{12},a_{22} \right ), 使F2与F1独立,且使F2的方差(除F1之外)最大。
        问题的答案是: X的协方差矩阵S的第二大特征根\lambda _{2}所对应的单位,特征向量即为\left ( a_{12},a_{22} \right ),并且\lambda _{2}就是F2的方差。

                  F_{1}=a_{11}\left ( x_{1} -\overline{x_{1}}\right )+a_{21}\left ( x_{2} -\overline{x_{2}}\right ),F_{2}=a_{12}\left ( x_{1} -\overline{x_{1}}\right )+a_{22}\left ( x_{2} -\overline{x_{2}}\right )

                其中,a_{ij}称为因子载荷量

                        ●因子载荷量:主成分与变量间的相关系数,
                        ●即因子载荷量的大小和它前面的正负号直接反映了主成分与相应变量之间关系的密切程度和方向。从而可以说明各主成分的意

   2.4 求解主成分分析步骤

    1.求样本均值\overline{X}=\left ( \overline{x_{1}}, \overline{x_{2}}\right )和样本协方差矩阵S;
        2.求S的特征根
                ●求解特征方程\left | S-\lambda I \right |=0,其中I是单位矩阵
                ●解得2个特征根\lambda _{1},\lambda _{2}\left ( \lambda _{1}\geq \lambda _{2} \right )
        3.求特征根所对应的单位特征向量\lambda _{1}:\left [ a_{11} ,a_{21}\right ]; \lambda _{2}:\left [ a_{12} ,a_{22}\right ]
        4.写出主成分的表达式  : F_{1}=a_{11}\left ( x_{1} -\overline{x_{1}}\right )+a_{21}\left ( x_{2} -\overline{x_{2}}\right ),        

                                                F_{2}=a_{12}\left ( x_{1} -\overline{x_{1}}\right )+a_{22}\left ( x_{2} -\overline{x_{2}}\right )

2.5 多指标求解主成分步骤


        在一般情况下,设有n个样品,每个样品观测p个指标,将原始数据排成如下矩阵:
                                                     \begin{pmatrix} x_{11} & x_{12} & ... & x_{1p}\\ x_{21} & x_{22} & ... & x_{2p}\\ ... & ... & ... & ...\\ x_{n1} & x_{n2} & ... & x_{np} \end{pmatrix}
         1.求样本均值\overline{X}=\left ( \overline{x_{1}}, \overline{x_{2}},... \overline{x_{p}}\right )^{'}和样本协方差矩阵S;
        2.求解特征方程\left | S-\lambda I \right |=0,其中I是单位矩阵,​
                解得p个特征根,\lambda _{1},\lambda _{2},...,\lambda _{p}\left ( \lambda _{1}\geq \lambda _{2}...\geq \lambda _{p}\right )
        3.求所对应的单位特征向量\alpha _{k}\left ( k=1,2,...p \right )^{'}
         4.写出主成分的表达式F_{k}=a_{1k}\left ( x_{1} -\overline{x_{1}}\right )+a_{21}\left ( x_{2} -\overline{x_{2}}\right )+...+a_{pk}\left ( x_{p} -\overline{x_{p}}\right )

                                                或  F_{k}=a_{1k}x_{1}+a_{2k}x_{2}+...+a_{pk}x_{p}

2.6 主成分个数的选取原则

        根据累积贡献率的大小取前面m个(m<p)主成分

                选取原则:\frac{\sum_{i=1}^{m-1}\lambda _{i}}{\sum_{i=1}^{p}\lambda _{i}}< 80\sim 85%                 且  \frac{\sum_{i=1}^{m}\lambda _{i}}{\sum_{i=1}^{p}\lambda _{i}}\geq 80\sim 85%
 

2.7 小结

主成分是原始变量的线性组合。
        ●第一个主成分具有最大的方差值。
        ●第二主成分试图解释数据集中的剩余方差,并且与第一主成分不相关(正交)。
        ●第三主成分试图解释前两个主成分等没有解释的方差。

3. 主成分分析实战

3.1 实战1 

      下表是10位学生的身高X1 、胸围X2、体重x;的数据 。对此进行主成分分析。

 1.求样本均值和样本协方差矩阵

2.求解协方差矩阵的特征方程\left | S-\lambda I \right |=0     

 3.解得三个特征值和对应的单位特征向量:       

 4.由此我们可以写出三个主成分的表达式:

 5.主成分的含义
        F1表示学生身材大小。
        F2反映学生的体形特征

 三个主成分的方差贡献率分别为:

                                         ​​​​​​​        ​​​​​​​             

前两个主成分的累积方差贡献率为:

3.2 实战2

 代码实现:

import numpy as np
from sklearn.decomposition import PCA
X=np.array([[-1,-1],[-2,-1],[-3,-2],[1,1],[2,1] ,[3,2]])

pca=PCA(2)#参数可以写2 表示原向量的维度或者是经过主成分分析候数据的维度;也可以写一个信息保留的精度(浮点数小于1)0.95...
pca.fit(X)
print(pca.components_)#特征向量
print(pca.explained_variance_)#方差
print(pca.explained_variance_ratio_)# #返回各个成分各子方差百分比

 结果:[[-0.83849224 -0.54491354]
 [ 0.54491354 -0.83849224]]         特征向量
[7.93954312 0.06045688]         方差
[0.99244289 0.00755711]        占比

可以直接使用:model=PCA(0.95   newX=model.fit_transform(X) 对主成分进行降维,得到降维特征

 运行结果:[[ 1.38340578]
 [ 2.22189802]
 [ 3.6053038 ]
 [-1.38340578]
 [-2.22189802]
 [-3.6053038 ]]

3.3 主成分分析的几何解释

平移、旋转坐标轴

               

         旋转变换的目的是为了使得n个样本点在F1轴方向.上的离散程度最大,即F1的方差最大,变
量F1代表了原始数据的绝大部分信息
,在研究某经济问题时,即使不考虑变量F2也损失不多
的信息。F1与F2除起了浓缩作用外,还具有不相关性。

         ●当坐标轴和椭圆的长短轴平行,那么代表长轴的变量就描述了数据的主要变化,而代表短轴的变量就描述了数,据的次要变化。
        ●坐标轴通常并不和椭圆的长短轴平行
        ●如果长轴变量代表了数据包含的大部分信息,就用该变量代替原先的两个变量,降维就完成了。
        ●椭圆(球)的长短轴相差得越大,降维也越有道理。

 主成分分析的本质则是坐旋转平移,获得一个新的坐标体系,而新的坐标体系中,刨除变化不大的(F2)。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值