特征工程之特征选择
特征选择是特征工程的一部分。特征选择主要解决我们应该使用哪些特征来训练预测模型的问题。选择特征往往需要特定领域知识,但有时候也可以通过某些方法自动选择出和问题相关度大的那些特征。
特征选择与降维
特征选择不同于降维,虽然他们都寻求减少数据集中属性的数量,但是降维主要是通过组合多个属性到一个属性来达到降维,而特征选择只是从特征中选择属性却并不改变属性。
降维的方法包括:主成分分析(Principal Component Analysis)、奇异值分解(Singular Value Decomposition)、Sammon映射(Sammon’s Mapping)。这些方法另外讲解。
特征选择的目的
在机器学习实际应用中,特征数量往往较多,其中可能存在不相关的特征,特征之间也可能相互依赖。特征越多训练时间越长,模型也会越复杂。特征选择能剔除不相关或者冗余的数据,达到以下目的:
- 减少过拟合:去掉冗余的数据可以减少数据中的噪音
- 增加正确率:减少误导性数据会提高模型正确率
- 减少训练时间:数据更少模型训练更快
- 简化模型:选择真正相关的特征简化模型,易于理解
特征选择的一般过程
特征选择一般先从特征全集中产生一个特征子集,然后用评价函数对该特征子集进行评价,评价的结果与停止准则进行比较,若评价结果比停止准则好就停止,否则就继续产生下一组特征子集,继续进行特征选择。选出来的特征子集一般还要验证其有效性。
产生过程
产生过程是搜索特征子空间的过程。搜索算法分为完全搜索、启发式搜索、随机搜索三大类。
- 完全搜索:广度优先搜索、分支限界搜索、定向搜索和最优优先搜索。
- 启发式搜索:序列前向选择、序列后向选择、双向搜索、增L去R选择算法、序列浮动选择、决策树。
- 随机算法:随机产生序列选择算法、模拟退火算法、遗传算法。
评价函数
见特征选择算法
停止标准
验证过程
特征选择算法
特征选择方法主要按照搜索策略和评价标准进行分类。这里使用基于评价标准进行划分。
过滤式方法(Filter Method)
这种方法的主要思想是对各维特征赋予权重,然后依据权重排序,越重要的特征权重越高。
主要方法有:
- 卡方检验(Chi-squared Test)
- 信息增益(Information Gain)
- 相关系数(Correlation Coefficient Scores)
封装式方法(Wrapper Method)
这种方法的主要思想是将特征子集的选择当做一个搜索寻优的过程,生成不同的组合,对组合进行评价,再对组合进行比较。
主要方法有:
- 递归特征消除算法(Recursive Feature Elimination Algorithm)
Embedded方法
这种方法的主要思想是在模型训练的过程中,挑选出对模型训练有重要意义的属性。
主要方法有:
- 岭回归(Rigge Regression)
特征选择陷阱
要注意的是选择不同的特征训练出的模型是不同的,特征选择就是模型选择的一部分,所以要先对数据进行分组,即分为训练集和测试集,然后再做特征选择。如果先进行特征选择,那么特征子集在分组后有具有随机性了。