数据降维 :这里的维度指定是特征数量,这里的降维是指减少特征的数量,从而达到增加样本密度以及去噪的目的。
降维方式主要有两种:特征选择和特征提取。其中特征提取是按照一定的数学变换方法,将高维空间的数据点映射到低维空间中,然后利用映射后的变量特征来表示原有的总体特征(即通过组合现有特征来达到降维的目的)。常用算法有主成分分析PCA、独立成分分析(ICA)、因子分析FA、线性判别分析LDA、局部线性嵌入(LLE)、核主成分分析(Kernel PCA)等。本文从使用的角度介绍一下常用的主成分分析,原理部分后面再补充。
特征选择
概念
特征选择就是指 单纯的从提取到的所有特征选择部分特征作为训练集特征, 特征在选择前和选择后可以改变值,也可以不改变值.但是选择后的特征维数肯定比选择前小,毕竟我们只选择了其中的一部分。
原因
- 冗余 : 部分特征的相关度高,容易消化计算性能.
- 噪声 : 部分特征对预测结果有影响.
主要方法
- Filter(过滤式): VarianceThreshold
- Embedded(嵌入式): 正则化 , 决策树
sklearn API (降维)
类:
sklearn.feature_selection.VarianceThreshold
VarianceThreshold(threshold=0.0)
删除所有低 方差特征
Variance.fit_transform(x)
x:numpy array格式的数据
返回值
删除方差低于threshold的特征之后的数据集,默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。
流程
- 初始化VarianceThreshold,指定阈值方差
- 调用 fit_transform
案例
结果
主成分分析PCA (Principal Component Analysis)
本质
PCA是一种分析,简化数据集的技术,无监督学习。
目的
是数据维度压缩,提取最有价值的信息(基于方差),尽可能降低原数据的维数(复杂度),尽可能地减少损失信息。
作用
可以消减回归分析或者聚类分析中特征的数量(降维中最常用的一种手段)
使用场景
特征数量达到上百的时候,考虑数据的简化.
sklearn API
类
sklearn.decompositon.PCAPCA(n_componets=None)
将数据分解为较低维数据
PCA.fit_transform(x)
x:numpy array格式
返回值
转换后降低维度的array。
n_componets参数:
小数:表示将信息保存到原信息的百分比,例如0.95表示降维后信息量是原来的95%。一般制定到0.9-0.95
整数:较少到的特征数量,一般不使用
流程
- 实例化 PCA
- 调用 fit_transform
PCA案例
结果
数据降维从3*4 降到2*2,具体的含义看不懂,只有机器知道,因为PCA在降维的过程中进行了一系列的矩阵变换,将原始信息进行了压缩,失去了原始数据的物理意义,但是降维后的数据不影响我们最终结果(分类,预测),只是不知道中间的过程。
总结:数据降维就是降低数据的维度,达到增加样本密度以及去噪的目的,从而提升模型训练的速度和精度。本文从使用的角度介绍一下机器学习中数据降维比较常用的两种方法---特征选择 和 主成分分析供大家参考,感谢阅读~