(模式识别)特征降维问题

(模式识别)特征降维问题

降维的必要性

  • 多重共线性--预测变量之间相互关联。多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯。
  • 高维空间本身具有稀疏性。一维正态分布有68%的值落于正负标准差之间,而在十维空间只有0.02%。
  • 过多的变量会妨碍查找规律的建立。
  • 仅在变量层面上分析可能会忽略变量之间的潜在联系。

降维的目的:

  1. 减少预测变量的个数
  2. 确保这些变量是相互独立的
  3. 提供一个框架来解释结果
降维的方法主要有:1.主成分分析算法(PCA)、2.线性判别分析(LDA)、3.局部线性嵌入(LLE)、4.拉普拉斯特征映射(Laplacian Eigenmaps)

1.主成分分析算法(PCA)

    主成分分析法是一种数据压缩的常用方法。主要是基于正交变换的思想,保留有显著贡献的特征向量。任取一个特征向量,如果它所对应的特征值在数据集上代表一个显著的方差值,则它称之为这个数据集的一个主成分。(其中,每一个特征向量和一个方差对应,而这个方差又由对应的特征值表示)

    主成分分析算法存在的缺点:

  •    主成分法是基于原始特征的一种线性变换。若原始数据中存在非线性属性,在用主成分法留下的显著主成分可能不再反应这种非线性属性。
  •    对于整体方差的贡献可忽略的主成分,却有可能在样本分类方面有至关重要的决定作用。一旦丢弃这些主成分,无意中将对我们要进行的分类以及回归性能产生破坏作用。
  •    通常很难给主成分赋予语义意义,然而,原始特征中却提供了这种语义意义,且它们在解决分类和回归问题方面往往是有用的。 

    尽管在应用主成分分析法时存在着许多缺点,然而,由于它给设计者提供了一种从原始数据得到理想数据的方法,所以还是被人们所应用。

    Matlab PCA实现

    

    Matlab中已经包含了实现了的PCA算法,可以通过princomp函数调用。其形式为:

    [COEFF,SCORE, latent]=princomp(X);

    其中,参数的含义如下:

  • X为原始的数据
  • COEFF为主成份分量
  • SCORE为主成份
  • latent为一个包含着样本协方差矩阵本征值的向量

    Matlab算法如下所示:

    X=[2,8,1;7,5,4;10,8,3;9,2,7];
    [COEFF,SCORE,latent]=princomp(X);
    COEFF
    SCORE
    latent
    cumsum(latent)./sum(latent)

    pareto(latent)

    (模式识别)特征降维问题


2.线性判别分析(LDA)

3.局部线性嵌入(LLE)

4.拉普拉斯特征映射(Laplacian Eigenmaps)