降维
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是为了让映射后的样本具有最好的分类性能——有监督的降维方法。