特征选择
特征选择主要有两个目的
- 减少特征数量、降维,使模型泛化能力更强,减少过拟合
- 增强对特征和特征之间的理解
特征选择应用阶段
当数据与处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。从两个方面考虑来选择特征: - 特征是否发散
- 特征与目标的相关性
主要方法 - Filter过滤法(针对单一特征本身)
- Wrapper包装法(基于对不同特征之间的集合的搜索)
- Embedded嵌入法(通过加载到模型自身的一种方法)
Filter过滤法
按照发散性或相关性对各个特征进行评分,设定阈值或选择阈值的个数,选择特征。
-
移除低方差的特征(Removing features with low variance)
-
单变量特征选择(Univariate feature selection)
单变量特征选择的原理是分别单独的计算每个变量的某个统计指标,根据该指标来判断哪些指标重要,剔除那些不重要的指标。
分类问题(y离散)
卡方检验、f_classif、互信息 -
经典的卡方检验是检验定性自变量对定性因变量的相关性。
回归问题(y连续)
皮尔森相关系数、f_regression、mutual_info_regression、最大信息系数(MIC) -
Pearson相关系数
-
互信息
互信息的不足: -
不属于度量方式,也没有办法归一化,在不同数据集上的结果无法做比较;
-
对于连续变量的计算不是很方便,通常变量需要先离散化,而互信息的结果对离散化的方式很敏感。
-
最大信息系数
-
距离相关系数
Wrapper包装法
根据目标函数(通常是预测效果评分),每次迭代选择若干特征或排除若干特征。
- 递归特征消除(Recursive Feature Elimination)
递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,移除部分小权值系数的特征,再基于新的特征集进行下一轮训练。
Embedded嵌入法
先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。
- 模型特征选择(Feature selection from Model)
基于模型的内在属性对于特征的选择方式,例如L1、L2正则化项、树模型的剪枝。