数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。特征选择是特种工程的重要组成部分,在现实任务中,获得数据之后通常先进性特征选择,用相关特征训练学习器。
特征选择的概念
- 相关特征:与当前学习任务相关的特征
- 无关特征:与当前学习任务无关的特征
- 特征选择:在不丢失重要特征的前提下,从给定的特征集合中选择出相关特征子集的过程(相关性)
特征选择的原因
1.降低学习难度
2.减轻维度灾难
3.减少计算和存储开销
4.提高模型的可解释性
特征选择的过程
生成一个“候选子集”,评价候选子集的好坏,基于评价结果生成下一个“候选子集“,再评价候选子集的好坏......直至无法找到更好的候选子集为止。特征选择的关键环节:如何根据评价结果生成下一个候选特征子集?(子集搜索问题)如何评价候选特征子集的好坏?(子集评价问题)
(1)子集搜索问题
通过贪心策略解决子集搜索问题,三种常见的策略:
- 前向搜索策略:逐渐增加相关特征
- 后向搜索策略:逐渐减少无关特征
- 双向搜索策略:逐渐增加相关特征,同时逐渐减少无关特征
(2)子集评价问题
通过计算候选子集的信息增益,评价候选子集的好坏。信息增益越大,则候选子集包含的的有助于分类的信息越多。信息增益是子集评价的准则之一,其他能判断划分差异的机制均能够用于特征子集评价。
特征选择方法之决策树
特征选择的方法--过滤式(filter)、包裹式(wrapper)、嵌入式 (embedded)
- 过滤式--使用发散性/相关性对各个特征进行评分,设定阈值或特征个数选择特征 。特征选择过程与学习器无关,相当于先对初始特征进行过滤,再用过滤后的特征训练模型。
- 包裹式--使用学习器的目标函数对各个特征进行评分,选择若干特征/删除若干特征。特征选择过程与学习器相关,使用学习器的性能作为特征选择的评价准则,选择最有利于学习器性能的特征子集。
- 嵌入式--使用机器学习算法对各个特征进行评分,选择若干个特征。特征选择过程与学习器相关,特征选择过程与学习器训练过程融合,在学习器训练过程中自动地进行特征选择。
特征选择的效果
特征选择不一定提升模型性能。
- 移除无关特征,能够在一定程度上提升模型性能。
- 移除重要程度较低的特征,不一定导致模型性能下降,也不一定导致模型性能提升。(特征的某种度量方式不代表特征的最终效果,度量方式只是一个参考而已)