共计 714 个字符,预计需要花费 2 分钟才能阅读完成。
特征选择在机器学习中占据了重要的地位,通常在构造完特征之后会发现很多特征,少则十几个多则几十个,其实这些特征并不完全对我们构造的模型有益,也许其中只有部分特征会对我们的模型是最佳组合,因此我们需要筛选出相应的特征组合作为训练的特征。
特征较多带来的问题:
- 特征维数较高,训练模型会比较麻烦
- 维数灾难,训练的模型效果不一定好且泛化能力较差
因此需要特征选择的过程
当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。通常来说,从两个方面考虑来选择特征:
- 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
- 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。
根据特征选择的形式又可以将特征选择方法分为3种:
- Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
过滤法是相当于对特征预处理,也是一种通过评价函数的手段,流程如下:
- Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。
包装法主要是选取一些特征组合然后对样本进行分类,根据分类的精度确定最终的特征组合,涉及到 分类器训练,在训练之后通过评价函数衡量
- Embedded:嵌入法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。
我们使用sklearn中的feature_selection库来进行特征选择。
正文完
请博主喝杯咖啡吧!