降维

0 - 引入

  在特征选择之后,有可能由于特征量过大导致计算量太大、内存溢出或者训练时间长的问题,因此需要通过降维方法将特征维度降低。

  常用的降维方法有如下几种:

  • 基于L1惩罚项的模型(上一篇特征选择提到的)
  • 主成分分析法(PCA)
  • 线性判别分析(LDA)

  下面通过sklearn并基于iris数据集来介绍不同的降维方法。

  导入iris数据集。

from sklearn.datasets import load_iris
iris = load_iris()

1 - sklearn方法查询表

  下面给出sklearn中用于降维的方法,以便于查询,具体使用后面部分将详细展开。

模块 说明
decomposition PCA

主成分分析法

discriminant_analysis LinearDiscriminantAnalysis

线性判别分析法

 

 

 

 

 

2 - 主成分分析法(PCA)

  代码如下:

from sklearn.decomposition import PCA

PCA(n_components=2).fit_transform(iris.data)

3 - 线性判别分析法(LDA)

  代码如下:

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA

LDA(n_components=2).fit_transform(iris.data, iris.target)

4 - PCA vs. LDA

  两种方法的本质都是将原始的样本映射到维度更低的样本空间中,但是它们的映射目标不同:

  • PCA是为了让映射后的样本具有最大的发散性(不相关性)——无监督的降维方法;
  • LDA是为了让映射后的样本具有最好的分类性能——有监督的降维方法。

5 - 参考资料

http://www.cnblogs.com/jasonfreak/p/5448385.html

原文地址:https://www.cnblogs.com/CZiFan/p/10770150.html